JavaScriptでは、C言語などと違って、ブロックレベルの変数がありません

つまり、for文などで宣言した変数を使用できるということです。ちょっと便利ですね。


下記の例では、varによる宣言をしていますが、10と表示されます。

for( var i=0; i<10; i++ ){
  // 処理
}
window.alert( i );  // => 10

自分の思い込みで、後で痛い目に会わないために、実際に小さなテスト用プログラムを作って確認してみるか、別に変数を定義して、どう考えてもうまくいくコーディングをするといいですね。


ちなみに、Rubyは、ブロックレベルのスコープはありますが、for文if文は、ブロックレベルとして扱われないようです。

2021/07/09