表題の通り。
どれくらいの差があるのかを比較してみた。
ちなみに使用jQueryのバージョンは1.11.0。
参考: http://www.sitepoint.com/speed-question-jquery-each-vs-loop/
まずはこんな感じでループ用の配列を定義。
var no = [];
for (var i = 0; i < 10000000; i++) {
no.push(i);
}
no変数をループさせ、処理時間を比較してみる。
jQueryの$.each
// 処理開始時間
var before = +new Date();
$.each(no, function() {
});
// 結果
var result = +new Date() - before;
for文 その1
// 処理開始時間
var before = +new Date();
for (var i = 0; i < no.length; i++) {
}
// 結果
var result = +new Date() - before;
for文 その2 変数初期化をforの前に行う
// 処理開始時間
var before = +new Date();
var len = no.length, i = 0;
for (i; i < len; i++) {
}
// 結果
var result = +new Date() - before;
何度か計測した結果、resultに入った値は下記の通り。
| 処理 |
| $.each |
| for文 その1 |
| for文 その2 |
一番最後の、for文の前にあらかじめ変数を定義しておくやり方が安定して速い。