哪个(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兼容性表。