參與iT邦JavaScript中忍比賽,獲得一本JS武林祕級“JavaScript設計模式”,因而閉門修練月餘,今神功既成故節錄三十片段,以饗邦友。
使用for迴圈可以重複整個陣列或類似陣列的物件,通常for迴圈的使用類似如此:
for (var i = 0; i < myarray.length; i++){
//操作 myarray[i]
};
這種作法雖很直覺,但代價卻很昂貴,尤其是DOM操作更是如此,因為每一次執行一次迴圈,便需重新計算myarray的長度。而較好的作法如下:
for (var i = 0, max = myarray.length; i < max; i++){
//操作 myarray[i]
};
此方法只需計算一次length,並用於整個迴圈中。
在重覆整個 HTML Collection 之前事先快取長度,不管什麼瀏覽器中都將更為快速,例如:在Safari3是2倍速,在IE7則可達到190倍速。
如果您更遵照單一「var」模式,則迴圈將變成如此:
var i = 0,
max,
myarray = [];
for (i = 0, max = myarray.length; i < max; i++){
//操作 myarray[i]
};
這種for迴圈還可進一步最佳化:
var i,
myarray = [];
for (i = myarray.length; i--;){
//操作 myarray[i]
};
「for 迴圈」是不是很多樣化呢?今天咱就上到這裏,現在聽口令:
拿起水杯,喝口茶趣~~~
待續.....