Jshint.com提供错误:
第36行:var signin_found;缺少“使用严格”声明。
答案 0 :(得分:36)
在js文件的顶部添加“use strict”(在.js文件的第1行):
"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)
{
关于stackoverflow的另一个问题的更多关于“use strict”的内容:
What does "use strict" do in JavaScript, and what is the reasoning behind it?
更新。
jshint.com有问题,它要求你在每个函数中加入“use strict”,但是应该允许它为每个文件全局设置它。
jshint.com认为这是错误的。
"use strict";
function asd()
{
}
但它没有任何问题......
它希望你对每个功能都使用“use strict”:
function asd()
{
"use strict";
}
function blabla()
{
"use strict";
}
然后它说:
干得好! JSHint没有发现您的代码有任何问题。
答案 1 :(得分:32)
JSHint维护者在这里。
JSHint--网站上使用的版本 - 要求您在代码中使用功能级严格模式。关闭它很容易,只需取消选中“代码不在严格模式时发出警告”复选框:
为什么我们不允许@Czarek建议的全局严格模式?因为页面上使用的某些JavaScript文件可能不是我严格的模式兼容,而全局严格模式会破坏该代码。要使用全局严格模式,有一个名为globalstrict
的选项。
希望有所帮助!
答案 2 :(得分:10)
我认为这是因为jshint试图“保护”我们免受意外分配严格模式到整个文件。 最好用匿名函数包装代码,或使用某种命名空间。
e.g。两者都在严格模式下运行:
(function() {
"use strict";
function foo() {
.....
}
function bar() {
.....
}
}());
答案 3 :(得分:4)
JSlint要求您的代码处于'严格模式'
要执行此操作,只需将"use strict";
添加到代码顶部即可。