JSHint を使用して JavaScript コードを lint していました。コードには、次のように使用される 2 つの for ループがあります。
for (var i = 0; i < somevalue; i++) { ... }
したがって、両方の for ループは反復に var i を使用します。
ここで、JSHint は 2 番目の for ループのエラーを表示します:「'i' は既に定義されています」。これが真実ではないとは言えませんが(明らかにそうであるため)、var i はその特定の場所でのみ使用されるため、これは問題ではないと常に考えていました。
このように for ループを使用するのは悪い習慣ですか? 次のように、コード内の for ループごとに異なる変数を使用する必要がありますか?
//for-loop 1
for (var i = 0; ...; i++) { ... }
//for-loop 2
for (var j = 0; ...; j++) { ... }
それとも、これは無視できるエラーの 1 つですか (コードが壊れないため、本来の動作を実行します)。
JSLintところで。関数の先頭で var i を定義していないため、最初の for ループで検証を停止します (そのため、最初に JSHint に切り替えました)。したがって、この質問の例によると: JSLint または JSHint JavaScript 検証を使用する必要がありますか? – JSLint を確認するには、とにかくこのような for ループを使用する必要があります。
...
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++) { ... }
これにはベストプラクティスがありますか、それとも上記のコードのいずれかを使用できますか?つまり、「私の」ベストプラクティスを選択できますか?