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

Sea*_*lan 34 javascript strict ecma262 ecmascript-5

在我写这篇文章时,ECMAScript 5正处于最终草案中; 它是由于包含一个严格模式,它将阻止您使用eval和其他限制分配给全局对象.(John Resig的文章是一个很好的介绍.)

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

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

kan*_*gax 26

更新:

请参阅我的兼容性表.

原始回复:

目前没有.

Raphael Speyer正在为今年夏天的Rhino Mozilla实施工作,而afaik,他们的实施已接近完成.

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

还有谷歌的Caja项目,它在一些变体(Valija,Cajita等)中有点模仿严格模式的行为.

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


Sea*_*lan 12

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


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


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

通过此兼容性表找到.


侏罗纪声称支持ES5严格模式.

  • 有趣的是兼容性表由上面的另一张海报维护. (2认同)

whi*_*and 9

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

Chrome 13.0
Safari 5.1
Firefox 4.0
Internet Explorer 10.0
Opera 11.6

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