【问题标题】:Which (javascript) environments support ECMAscript 5 strict mode? (aka "use strict")哪些 (javascript) 环境支持 ECMAscript 5 严格模式? (又名“使用严格”)
【发布时间】:2010-11-28 06:37:22
【问题描述】:

ECMAScript 5 在我写这篇文章的时候已经是最后的草稿了;这是由于包含一个严格模式,它会阻止您分配给全局对象、使用 eval 和其他限制。 (John Resig's Article 是一个很好的介绍。)

通过在文件(或函数)的顶部包含字符串“use strict”来触发这种神奇的理智保存模式。但是,在旧环境中,“use strict”是无操作的。如果您添加“使用严格”并且不在严格的环境中对其进行测试,您可能会留下一个不严格的代码的定时炸弹,当它真正遇到严格的环境时会中断。

哪些环境真正尊重“use strict”?

【问题讨论】:

标签: javascript strict ecma262 ecmascript-5


【解决方案1】:

更新

见我的compatibility table

原始回复

目前没有。

Raphael Speyer 是 working on Mozilla implementation for Rhino during this summer,而且 afaik,他们的实施已经接近完成。

我知道(基于 ES-discuss 列表中的信息)微软计划将一些 ES5 功能包含到即将发布的 IE 版本中,并且他们现在很可能正在努力实现严格模式(您可能知道,IE8已经包含了一些 ES5 特性,比如Object.defineProperty)。

还有Google's Caja project,它在某些变体(Valija、Cajita 等)中在某种程度上模仿了严格模式的行为。

Crockford 最近也将此选项添加到 JSLint,但我不确定它是否真的会触发任何额外的验证(根据 ES5 严格规则)。

【讨论】:

  • 更糟糕的是,Speyer 超时并没有实现严格模式,所以即使 Rhino 将支持大部分其他 ES5 功能,它也不支持严格模式。 :-(
【解决方案2】:

现在它已经真正发布了,Firefox 4 是“第一个支持 ES5 严格模式的浏览器”的赢家。现在您可以开始使用它了,只要您在 Firefox 4 中进行测试即可。


Safari 5.1+ 和 Chrome 13+ 也支持严格模式。


第一个在:Besen。在德尔福中实现。我认为它是独立的,但我不确定。但它确实支持严格模式。

通过this compatibility table找到。


Jurassic 声称支持 ES5 严格模式。

【讨论】:

  • 有趣的是兼容性表是由上面的另一张海报维护的。
  • 是的; @kangax 非常适合跟踪这些内容。
【解决方案3】:

ECMAscript 5 严格模式要求主流浏览器(或更高版本)的这些版本:

Chrome 13.0
Safari 5.1
火狐 4.0
Internet Explorer 10.0
歌剧 11.6

不,IE9 没有严格的支持,它是 10 或更高版本的新功能。

【讨论】:

    【解决方案4】:

    Opera 11.60 已经完全支持 ECMAScript 5.1 并且它是严格的模式变体。请参阅@kangax 兼容性表。

    【讨论】:

    猜你喜欢
    • 2011-06-06
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 2011-08-26
    • 2013-10-08
    • 2018-07-19
    • 1970-01-01
    相关资源
    最近更新 更多