我很好奇下面的代码在调用之前是否有测试Java严格模式兼容性的代码是否有问题:
(function() { "use strict"; return this; })() || "use strict";
我担心它太笨重,或者由于某种原因实际上无法正常工作。
更新
罗伯特很好地回答了我的问题。我以为我可以将其放在这里以供将来参考,以利于他人。摘自John Resig的“ ECMAScript 5严格模式,JSON和更多内容”:
用于启用严格模式的语法...只是单个语句中的一个字符串,恰好包含“ use strict”的内容。为了启用严格模式,未引入新语法。这是巨大的。这意味着您可以在今天的脚本中打开严格模式,最坏的是,它不会在旧的浏览器中产生任何副作用。
支票无效,也不需要。如果浏览器不支持严格模式,它将简单地将严格模式声明视为字符串文字表达式,这是一个完全有效的表达式,并且没有副作用。
在支持严格声明的浏览器中,只需直接使用声明即可。
无论如何,严格模式声明必须独立存在,而不是较大表达式的一部分,否则,即使是具有严格模式支持的现代浏览器也将其视为常见的无意义的字符串文字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句