【发布时间】:2010-11-28 06:37:22
【问题描述】:
ECMAScript 5 在我写这篇文章的时候已经是最后的草稿了;这是由于包含一个严格模式,它会阻止您分配给全局对象、使用 eval 和其他限制。 (John Resig's Article 是一个很好的介绍。)
通过在文件(或函数)的顶部包含字符串“use strict”来触发这种神奇的理智保存模式。但是,在旧环境中,“use strict”是无操作的。如果您添加“使用严格”并且不在严格的环境中对其进行测试,您可能会留下一个不严格的代码的定时炸弹,当它真正遇到严格的环境时会中断。
哪些环境真正尊重“use strict”?
【问题讨论】:
-
所以,我发现了 Mozilla 实现的跟踪错误:bugzilla.mozilla.org/show_bug.cgi?id=482298(我想这是为 SpiderMonkey 准备的。)
-
这是 Rhino ES5 的跟踪错误:bugzilla.mozilla.org/show_bug.cgi?id=489326 和 Rhino 的“严格模式”错误:bugzilla.mozilla.org/show_bug.cgi?id=517860
-
看起来这与我们将在 Webkit/JavaScriptCore 中得到的跟踪错误一样接近:bugs.webkit.org/show_bug.cgi?id=10701
-
更多关于 SpiderMonkey/Firefox 中 ES5 支持(包括严格)的信息:wiki.mozilla.org/JavaScript:SpiderMonkey:PathToFirefox4
-
代码登陆 Webkit:trac.webkit.org/changeset/69516
标签: javascript strict ecma262 ecmascript-5