问题

最近,我通过Crockford的 JSLint 运行了一些JavaScript代码,并提供了以下错误:< / p>

Problem at line 1 character 1: Missing "use strict" statement.

做一些搜索,我意识到有些人在他们的JavaScript代码中添加"use strict"; .一旦我添加了语句,错误停止显示.不幸的是,Google没有透露这个字符串语句背后的大部分历史.当然,它必须与浏览器如何解释JavaScript有关,但我不知道什么效果.

那么什么是"use strict"; 一切,它是什么意思,它是否仍然相关?

任何目前的浏览器都会回应"use strict"; 字串,或是日后使用吗?



解决方法

这篇关于Javascript严格模式的文章可能会对您感兴趣: John Resig - ECMAScript 5严格模式,JSON等

引用一些有趣的部分:

Strict Mode is a new feature in ECMAScript 5 that allows you to place a program, or a function, in a "strict" operating context. This strict context prevents certain actions from being taken and throws more exceptions.

和:

Strict mode helps out in a couple ways:

  • It catches some common coding bloopers, throwing exceptions.
  • It prevents, or throws errors, when relatively "unsafe" actions are taken (such as gaining access to the global object).
  • It disables features that are confusing or poorly thought out.

另请注意,您可以对整个文件应用"严格模式"...或者您可以仅将其用于特定功能(仍然引用来自John Resig的文章)

:

// Non-strict code...

(function(){
  "use strict";

  // Define your library strictly...
})();

// Non-strict code... 

如果您必须混合旧代码和新代码,这可能会有所帮助; - )

所以,我想有点像"use strict"你可以在Perl中使用(因此名称?):它可以帮助你减少错误,通过检测更多可能导致破损的事情.

目前, 受所有主要浏览器支持 ( bar IE 9及以下).




相关问题推荐