哪个(javascript)环境支持ECMAscript 5严格模式? (又名“使用严格”)
-
07-07-2019 - |
题
ECMAScript 5 即将进入决赛我写这篇文章的草稿;它是由于包含一个严格模式,它将阻止您使用eval和其他限制分配给全局对象。 ( John Resig的文章是一个很好的介绍。)
通过包含字符串“use strict”来触发这种神奇的保健模式。在文件的顶部(或函数。)但是,在较旧的环境中,“use strict”是一个无操作。如果你添加“use strict”并且不要在严格的环境中测试它,你可能会留下一个不太严格的代码的定时炸弹,当它真正遇到严格的环境时会破坏。
哪些环境实际上尊重“使用严格”?
解决方案
<强>更新强>:
请参阅我的兼容性表。
原始回复:
目前没有。
Raphael Speyer在今年夏天为Rhino实施Mozilla实施工作,并且afaik,他们的实施非常接近完成。
我知道(基于来自ES讨论列表的信息)微软计划将一些ES5功能包含在即将推出的IE版本中,他们现在很可能正在进行严格的模式实现(你可能知道,IE8)已包含一些ES5功能,如 Object.defineProperty
)。
还有 Google的Caja项目,它在某些方面模仿了严格模式的行为它的变化(Valija,Cajita等)。
Crockford最近还将此选项添加到 JSLint ,但我不确定它是否真的触发任何其他验证(根据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兼容性表。