Javascript 有没有办法让JSHint';s";变量已定义“0”;警告

Javascript 有没有办法让JSHint';s";变量已定义“0”;警告,javascript,jshint,Javascript,Jshint,如果我有多个for循环声明同一个索引变量,JSHint会抱怨: for(var i=0; i<10; i++){ console.log(i); } for(var i=0; i<10; i++){ //<-- jshint warns that 'i' is already defined console.log(i); } for(var i=0;i选项禁用此警告 /* jshint shadow:true */ for(var i=0; i<

如果我有多个for循环声明同一个索引变量,JSHint会抱怨:

for(var i=0; i<10; i++){
    console.log(i);
}

for(var i=0; i<10; i++){   //<-- jshint warns that 'i' is already defined
    console.log(i);
}
for(var i=0;i选项禁用此警告

/* jshint shadow:true */

for(var i=0; i<10; i++){ console.log(i); }
for(var i=0; i<10; i++){ console.log(i); }
/*jshint shadow:true*/

for(var i=0;我“我认为如果我删除for循环或将它们四处移动,则重复声明会更加健壮”-为什么?确切地说,如果你(例如)由于缺少块作用域而将一个循环移动到另一个循环中,它将非常糟糕。我正在考虑何时横向移动循环(如果我将声明保留在第一个循环中,并在第二个循环中删除它,这可能是一个问题)。此外,如果我将
var I
提升到函数顶部,就像警告提示我一样,那么jshint将允许我嵌套
(i=
在一个循环中循环,而不给出任何警告。通过不细化变量?LOL,您可以为函数中的每个
for
循环使用不同的字母。然后您可以使jsHint静音,并可以在该函数中任意移动循环,而不中断任何操作,甚至包括将它们嵌套在另一个循环中循环。请注意,ES6打算通过在
for
循环初始值设定项中使用
let
来解决此问题。不幸的是,似乎无法全局地说“仅对“伪作用域”中的局部变量禁用此警告”(或者可能只是JSHIT没有考虑for循环的初始化部分作为伪范围主体的一部分)。例如,一个可能更喜欢运行为<代码>阴影:外部< /代码>,否则…