kidoOooOoooOOom

IT系で開発やってます

for分での変数宣言の巻き上げ

ECMAScript 5までのJSでは、ブロックレベル変数宣言概念はなかったため、下記のfor文での変数宣言は

for (var i=0, len=items.length; i < len; i++) {
  doSomething(items[i]);
}

下記のように宣言が巻き上げられる。

var i, len;
for (i=0, len=items.length; i < len; i++) {
  doSomething(items[i]);
}

これにより、i, len のスコープをfor文の中だけにしたはずなのに他に影響出るという勘違い起こりうる。

メンテナブルJavaScript ―読みやすく保守しやすいJavaScriptコードのための作法

メンテナブルJavaScript ―読みやすく保守しやすいJavaScriptコードのための作法