「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とは順序が逆になる。 //この書き方は知らなかった…。 }
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