我们必须注意JavaScript“严格模式”吗?

时间:2011-12-11 18:49:56

标签: javascript ecmascript-5 strict-mode

阅读ECMAScript 5 strict mode我了解到:

  

某些语言功能如此普遍,以至于执行运行时   支票具有可观的性能成本。 一些严格的模式调整,   加上要求用户提交的JavaScript是严格的模式代码和   它以某种方式被调用,大大减少了需要   对于那些运行时检查。

其中一些调整可能是:

  • 切勿在{{1​​}} / null方法中使用undefined / call作为第一个参数。
  • 不要在函数内创建新的全局变量。

问题:

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

  2. 我应该开始关注apply无论如何?我的意思是盲目采纳是一种好的做法吗?

2 个答案:

答案 0 :(得分:3)

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

      

    所有这一切,我相当肯定jQuery现在与ES5兼容。一旦该语言的实现可用(以便可以测试该前提),我将很高兴地将jQuery转换为仅在严格模式下工作。

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

  3. 更多aboute严格模式:

答案 1 :(得分:2)

AFAIK jQuery是以严格模式编写的(编辑:不是那么缺乏,但作者说这是兼容的)。 Crockford的jslint在一开始就使用“use strict”(几天前我看到了源代码)。我会说几乎所有可以承受的现代框架都是严格的模式,因为它是框架本身的一个奖励点。

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