通过阅读ECMAScript 5的严格模式,我了解到:

某些语言功能如此普遍,以至于执行运行时检查会产生可观的性能成本。 进行了一些严格模式调整 ,并要求用户提交的JavaScript为严格模式代码,并以某种方式调用它,从而大大减少了对这些运行时检查的需求。

其中一些调整可能是:

  • 切勿在call / apply方法中将null / undefined用作第一个参数。
  • 不要在函数内部创建新的全局变量。

问题:

  1. 是否有一些以严格模式编写的JavaScript框架? 因此,我们可以相信我们的“严格”代码不会浪费吗?

  2. 无论如何,我应该开始关注strict mode吗? 我的意思是盲目的采用它是一种好习惯吗?

===============>>#1 票数:3 已采纳

  1. 是的,大多数框架已经开始使用严格模式。 也许还没有完成,但是距离很近。 约翰·雷斯格:

    话虽这么说,我相当确定jQuery现在是ES5-Strict兼容的。 一旦实现了该语言的实现(以便可以测试该前提),我将很乐意将jQuery切换为仅在严格模式下工作。

  2. 建议使用,但不是必需的。 如果您现在开始使用严格模式,您将习惯它,因此可以为新标准做好准备。

关于严格模式的更多信息:

===============>>#2 票数:2

AFAIK jQuery是在严格模式下编写的(编辑:并非如此,但作者说它是兼容的)。 Crockford的jslint在一开始就使用“ use strict”(我几天前看到了源代码)。 我会说几乎所有可以负担得起严格模式的现代框架,因为它是框架本身的加分点。

即使不是这样,您的工作也不会丢失,因为通过坚持严格的模式,您可以使代码变得更好(这迫使您避免某些错误)。

  ask by Igor Parra translate from so

未解决问题?本站智能推荐:

2回复

为什么在Javascript5严格模式下不允许删除?

我对javascript很新,但我很喜欢它的危险快速和松散的表现力。 也就是说,我注意到显然在“使用严格”模式下操作时,您无法删除对象。 我不是一个删除东西的忠实粉丝(因为理论上,范围应该照顾到这一点),但我想知道删除这个功能背后的动机是什么?
2回复

严格模式返回此无违反

我也想吃蛋糕:我想要一种方法,当它绑定到对象时, this方法将其返回以进行链接,但是当使用null | undefined范围调用该方法时,将返回undefined 。 这似乎工作正常,但是如果将其放入JSLint中,则会遇到“ 严重违反”错误。 我不需要使用严格模式,但是似乎这应该可行并
6回复

有没有办法检查是否强制执行严格模式?

无论如何都要检查是否强制执行严格模式'use strict',并且我们想要为严格模式执行不同的代码,而为非严格模式执行其他代码。 寻找像isStrictMode();//boolean这样的函数
3回复

我可以为特定功能禁用ECMAscript严格模式吗?

我在MDC或ECMAscript规范中没有找到关于我的问题的任何内容。 可能有人知道一种更“笨拙”的方法来解决这个问题。 我在我的环境中的每个javascript文件上调用"use strict" 。 我的所有文件都是这样开始的 现在,我有一个处理错误的自定义函数。 该函数使
3回复

在严格模式下获取未知环境中的全局对象的引用

在未知主机环境中以ES5严格模式获取全局对象句柄的推荐方法是什么? ECMAScript没有提供引用我所知道的全局对象的内置方法。 如果是这样,这就是我正在寻找的答案。 在已知环境中 ,全局对象通常具有自引用属性。 由于全局对象是全局范围的VO ,因此全局对象的属性是全局变量,因
4回复

为什么在严格模式下不允许使用八进制数字文字(解决方法是什么?)

为什么在JavaScript严格模式下不允许使用八进制数字文字? 有什么害处? "use strict"; var x = 010; //Uncaught SyntaxError: Octal literals are not allowed in strict mode.
1回复

如何识别javascript不可删除的属性?

在Javascript严格模式下 不允许删除不可删除的属性 为了确保不删除这样一个不可删除的属性,如何确定属性X是可删除的, 属性Y是不可删除的 它背后的概念是......?
2回复

在严格模式JavaScript中检索“self”函数

我经常需要在函数f中检索指向f的方法的名称。 例如。 假设我们有一个getMethodName(obj, methodFunction)函数,该函数在obj上使用foreach来查找属性,该属性是methodFunction的链接: 如何在不推荐使用arguments.callee
1回复

为什么我的JavaScript在Safari上的严格模式下无法正常工作?

我建立了一个使用一些简单JavaScript的网站。 经过一些测试,我发现我的JavaScript在iOS设备上的表现与我可以测试的所有其他设备相比有很大不同。 经过数小时的反复试验,我发现意外行为仅在严格模式下发生,但很难进一步解决问题,因为我的软件/硬件仅限于Apple开发和测试。
2回复

严格模式和保留字

为什么这段代码很好: 虽然这不是 我知道接口是严格模式下的保留字,但两个例子都不应该抛出错误吗?