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

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

通过在文件(或函数)的顶部包含string“use strict”,可以触发这种神奇的理智保存模式。但是,在较老的环境中,“use strict”是无效的。 如果在严格的环境中添加“严格使用”,而不是在严格的环境下进行testing,那么您可能会留下一个不真正严格的代码的时间炸弹,这个代码在真正达到严格的环境时会被破坏。

哪个环境真的尊重“严格使用”?

更新

看到我的兼容性表 。

原始回复

没有现在。

拉斐尔·斯派尔(Raphael Speyer) 今年夏天正在为犀牛(Rhino)开发Mozilla的实现 ,而且这个实现相当接近完成。

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

还有Google的Caja项目 ,它在某些变体(Valija,Cajita等)中有点模仿严格模式的行为。

Crockford最近还将这个选项添加到JSLint中 ,但我不确定它是否实际触发了任何额外的validation(按照ES5严格的规则)。

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


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


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

通过这个兼容性表格find。


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

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

Chrome 13.0
Safari 5.1
Firefox 4.0
Internet Explorer 10.0
Opera 11.6

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

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