我只是在使用 JSHint 整理一些 JavaScript 代码。在代码中,我有两个 for 循环都像这样使用:
for (var i = 0; i < somevalue; i++) { ... }
所以两个 for 循环都使用 var i 进行迭代。
现在 JSHint 向我显示了第二个 for 循环的错误:“'i' is already defined”。我不能说这不是真的(因为它显然是)但我一直认为这无关紧要,因为 var i 只在那个特定的地方使用。
以这种方式使用 for 循环是不好的做法吗?我应该为代码中的每个 for 循环使用不同的变量吗?
//for-loop 1
for (var i = 0; ...; i++) { ... }
//for-loop 2
for (var j = 0; ...; j++) { ... }
或者这是我可以忽略的错误之一(因为它不会破坏我的代码,它仍然会做它应该做的事情)?
JSLint 顺便说一句。在第一个 for 循环处停止验证,因为我没有在函数顶部定义 var i (这就是我首先切换到 JSHint 的原因)。所以根据这个问题中的例子:我应该使用 JSLint 还是 JSHint JavaScript 验证?– 我应该使用这样的 for 循环来确认 JSLint:
...
var i;
...
//for-loop 1
for (i = 0; ...; i++) { ... }
...
//for-loop 2
for (i = 0; ...; i++) { ... }
这对我来说也很好,因为这样我应该避免 JSLint 和 JSHint 中的两个错误。但我不确定的是是否应该为每个 for 循环使用不同的变量,如下所示:
...
var i, j;
...
//for-loop 1
for (i = 0; ...; i++) { ... }
//for-loop 2
for (j = 0; ...; j++) { ... }
那么是否有最佳实践,或者我可以使用上面的任何代码,这意味着我选择“我的”最佳实践?