iT邦幫忙

DAY 7
7

JavaScript 三十參系列 第 7

JavaScript 三十參(7):for 迴圈

  • 分享至 

  • xImage
  •  

參與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 迴圈」是不是很多樣化呢?今天咱就上到這裏,現在聽口令:

拿起水杯,喝口茶趣~~~

待續.....

JavaScript 三十參(總整理)


上一篇
JavaScript 三十參(6):單一「var」模式
下一篇
JavaScript 三十參(8):for-in 迴圈
系列文
JavaScript 三十參30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
lugood
iT邦新手 4 級 ‧ 2012-10-20 02:21:02

那個...最後的最佳化 以前都沒想到耶 厲害~~
讚

ted99tw iT邦高手 1 級 ‧ 2012-10-20 08:40:53 檢舉

灑花灑花

我要留言

立即登入留言