哪些(Javascript)环境支持ECMAScript 5严格模式?(又称“use strict”)

34

ECMAScript 5 正在进行最终草案,它将包括一个严格模式(strict mode),该模式将阻止您对全局对象进行赋值、使用 eval 等操作,并加入其他限制。(John Resig 的文章 是一个很好的介绍。)

通过在文件(或函数)顶部添加字符串 "use strict",就可以激活这种神奇的模式,从而避免了一些令人头疼的问题。但是,在旧环境中,“use strict”是无效的。如果您添加了“use strict”,却没有在严格环境中测试它,则可能会留下一颗定时炸弹,因为这段代码不是真正的严格代码,当它真正进入严格环境时就会出现问题。

哪些环境实际上尊重 "use strict"?


2
所以,我找到了Mozilla实现的跟踪错误:https://bugzilla.mozilla.org/show_bug.cgi?id=482298(我想这是针对SpiderMonkey的。) - Sean McMillan
有关SpiderMonkey/Firefox中ES5支持(包括strict)的更多信息,请访问:https://wiki.mozilla.org/JavaScript:SpiderMonkey:PathToFirefox4 - Sean McMillan
1
代码登陆Webkit:https://trac.webkit.org/changeset/69516 - Sean McMillan
Mozilla关于严格模式的页面,附有一些实现注意事项:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode - Sean McMillan
Chromium的问题跟踪页面为http://codereview.chromium.org/6144005/,而v8的问题跟踪页面为http://code.google.com/p/v8/issues/detail?id=919。 - Sean McMillan
显示剩余5条评论
4个回答

26

更新:

请查看我的兼容性表格

原始回复:

目前没有。

Raphael Speyer在今年夏天期间为Rhino的Mozilla实现进行了工作,据我所知,他们的实现非常接近完成。

根据ES-discuss列表上的信息,我知道微软计划在即将推出的IE版本中包含一些ES5功能,并且他们可能正在开发严格模式实现(你可能已经知道,IE8已经包含了一些ES5功能,如Object.defineProperty)。

此外,还有Google的Caja项目,它在一些变体(Valija、Cajita等)中模拟了严格模式的行为。

Crockford最近还向JSLint添加了这个选项,但我不确定它是否会触发任何额外的验证(按照ES5-strict规则)。


更糟糕的是,Speyer没能及时实现严格模式,所以即使Rhino支持大部分ES5特性,却不支持严格模式。:-( - Sean McMillan

12

现在,Firefox 4 获得了“第一个支持 ES5 严格模式的浏览器”的称号。只要您在 Firefox 4 中进行测试,就可以开始使用。


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


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

通过 这个兼容性表 找到的。


Jurassic 宣称支持 ES5 严格模式。


2
有趣的是,兼容性表是由上面的另一个发帖者维护的。 - Tower
是的;@kangax 管理跟踪这些东西非常棒。 - Sean McMillan

9

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

Chrome 13.0
Safari 5.1
Firefox 4.0
Internet Explorer 10.0
Opera 11.6

不,IE9不支持严格模式,只有10版本及以上才支持。


1

Opera 11.60已经完全支持ECMAScript 5.1及其严格模式变体。请参见@kangax的兼容性表。


只有尚未发布的Opera 12支持严格模式。 - Sean McMillan
不,Opera 11.60支持严格模式 --> http://dev.opera.com/articles/view/introducing-ecmascript-5-1/ - marcio
哎呀,@kangax的表格没有涵盖Opera 11.6。很奇怪。 - Sean McMillan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接