我只是使用 JSHint 来检查一些 JavaScript 代码。在代码中,我有两个 for 循环,它们的用法如下:
for (var i = 0; i < somevalue; i++) { ... }
因此两个 for 循环都使用 var i 进行迭代。
现在 JSHint 向我显示第二个 for 循环的错误:“'i' 已定义”。我不能说这不是真的(因为显然是这样),但我一直认为这并不重要,因为 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 验证? https://stackoverflow.com/questions/6803305/should-i-use-jslint-or-jshint-javascript-validation/10763615#10763615– 无论如何我应该使用这样的 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++) { ... }
那么是否有最佳实践,或者我可以使用上面的任何代码,这意味着我选择“我的”最佳实践?