哪个(javascript)环境支持ECMAscript 5严格模式? (又名“使用严格”)

时间:2009-09-14 20:59:12

标签: javascript strict ecma262 ecmascript-5

在我写这篇文章时,

ECMAScript 5正在最终草案中;它是由于包含一个严格模式,它将阻止您使用eval和其他限制分配给全局对象。 (John Resig's Article是一个很好的介绍。)

通过在文件(或函数)的顶部包含字符串“use strict”来触发这种神奇的保密模式。但是,在较旧的环境中,“use strict”是一种无操作。如果你添加“use strict”并且不在严格的环境中测试它,你可能会留下一个非常严格的代码的定时炸弹,它会在真正遇到严格的环境时破坏。

哪些环境实际上尊重“使用严格”?

4 个答案:

答案 0 :(得分:26)

<强>更新

查看我的compatibility table

原始回复

目前没有。

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

我知道(基于来自ES讨论列表的信息)微软计划将一些ES5功能包含在即将推出的IE版本中,他们现在很可能正在进行严格的模式实现(你可能知道,IE8)已经包含了一些ES5功能,例如Object.defineProperty)。

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

Crockford最近也将此选项添加到JSLint,但我不确定它是否实际触发了任何其他验证(根据ES5严格规则)。

答案 1 :(得分:12)

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


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


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

通过this compatibility table找到。


Jurassic声称支持ES5严格模式。

答案 2 :(得分:9)

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

Chrome 13.0
Safari 5.1
Firefox 4.0
Internet Explorer 10.0
Opera 11.6

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

答案 3 :(得分:1)

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