はらこメモ

プログラミングに関して調べたことについてのメモ書きです。言語はバラバラ…。

「JavaScript」for文の書き方

JavaScriptにおけるfor文の書き方メモ

その1

for(var i = 0; i < arr.length; i++){  
 //普通のfor文
}


その2

var len = arr.length;  
for(var i = 0; i < len; i++){  
 //arr.lengthにアクセスする回数が減るため、その1より速いらしい
}


その3

for(var i=arr.length; i--;){   
 //i--が0になると、falseになるためfor文を抜ける。
 //lengthの比較の条件文がなくなるので、その2より速いのかな。
 //iを使って処理する場合は、その1とその2とは順序が逆になる。
 //この書き方は知らなかった…。
}


Firefoxfirebugコンソールでやってみた。

var arr = [];
for(var i=0; i<=100; i++){
  arr[i] = i; 
}

console.time('timer1');
for(var i = 0; i < arr.length; i++){  
    //処理なし
}
console.timeEnd('timer1');

console.time('timer2');
var len = arr.length;  
for(var i = 0; i < len; i++){ 
    //処理なし
}
console.timeEnd('timer2');

console.time('timer3'); 
for(var i = arr.length ; i--;){  
    //処理なし   
}
console.timeEnd('timer3');

結果(1000000回の平均)

//配列を1000000個にしてやってみた
timer1:411.299ms
timer2:395.832ms
timer3:249.372ms


参考にしたページ:
make a record of…: [JavaScript] JavaScript 高速化 for編。lengthだけじゃないよ!
JavaScript:処理時間計測方法 | 覚え書き.com