Jshint.com要求“严格使用”。 这是什么意思?

Jshint.com给出的错误:

第36行:var signin_found; 缺less“使用严格”的陈述。

在js文件的顶部(在.js文件的第1行)添加“use strict”:

 "use strict"; ... function initialize_page() { var signin_found; /*Used to determine which page is loaded / reloaded*/ signin_found=document.getElementById('signin_button'); if(signin_found) { 

更多关于“使用严格”在另一个问题在这里在计算器:

JavaScript中使用“严格使用”是什么,背后的原因是什么?

UPDATE。

jshint.com有什么问题,它要求你在每个函数中都使用“strict”,但是应该允许为每个文件全局地设置它。

jshint.com认为这是错误的。

 "use strict"; function asd() { } 

但是没有什么不对

它要求你把“使用严格”的每个function:

 function asd() { "use strict"; } function blabla() { "use strict"; } 

然后它说:

做得好! JSHint没有发现你的代码有任何问题。

JSHint维护者在这里。

JSHint(网站上使用的版本)要求您在代码中使用function级严格模式。 closures它非常容易,只需要取消选中“代码不是严格模式时发出警告”checkbox:

jshint.com截图

为什么我们不允许@Czarekbuild议的全球严格模式? 由于您的网页上使用的一些JavaScript文件可能不是我严格模式兼容,全局严格模式将打破该代码。 要使用全局严格模式,有一个选项叫globalstrict

希望有所帮助!

我认为它是因为jshint试图“保护”我们免于意外分配严格模式到整个文件。 也可以用匿名函数来包装代码,或者使用一些名称空间。

例如两者都在严格模式下运行:

 (function() { "use strict"; function foo() { ..... } function bar() { ..... } }()); 

JSlint要求您的代码处于“严格模式”

要做到这一点,只需添加"use strict"; 到您的代码的顶部。