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

Must we pay attention to JavaScript "strict mode"?

本文关键字:模式 严格模式 JavaScript 我们      更新时间:2023-09-26

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

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

这些调整可以是:

  • 永远不要使用null/undefined作为call/apply方法的第一个参数。
  • 不要在函数中创建新的全局变量。

问题:

  1. 是否有一些JavaScript框架在严格模式下编写?所以我们可以相信我们的"严格"代码不会被浪费?

  2. 我是否应该开始关注strict mode ?我的意思是,它是否被盲目地当作一种好的做法?

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

    说了这么多,我相当确定jQuery现在是es5严格兼容的。一旦该语言的实现可用(以便可以测试该前提),我将很高兴地将jQuery切换到严格模式下专门工作。

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

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

  • http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
  • https://developer.mozilla.org/en/JavaScript/Strict_mode

AFAIK jQuery是在严格模式下编写的(编辑:不太理想,但作者说它是兼容的)。Crockford的jslint在一开始就使用了"use strict"(几天前我看到了源代码)。我想说的是,几乎所有现代框架都是严格模式,因为这是框架本身的一个加分点。

即使不是这样,你的工作也没有白费,因为通过坚持严格模式,你可以使你的代码更好(它迫使你避免一些错误)。