JavaScriptでは、C言語などと違って、ブロックレベルの変数がありません。
つまり、for文などで宣言した変数を使用できるということです。ちょっと便利ですね。
下記の例では、varによる宣言をしていますが、10と表示されます。
for( var i=0; i<10; i++ ){
// 処理
}
window.alert( i ); // => 10
自分の思い込みで、後で痛い目に会わないために、実際に小さなテスト用プログラムを作って確認してみるか、別に変数を定義して、どう考えてもうまくいくコーディングをするといいですね。
ちなみに、Rubyは、ブロックレベルのスコープはありますが、for文やif文は、ブロックレベルとして扱われないようです。
2021/07/09