|
復(fù)制代碼 代碼如下:
var arr = [];
for(var i=0; i<arr.length; i++){
//loop
}
這種代碼最大的問(wèn)題,就在于每次循環(huán)時(shí)都要通過(guò) .操作符獲取 .length,增加了開(kāi)銷。那么我們可以這樣改進(jìn)。
復(fù)制代碼 代碼如下:
var arr = [];
for(var i=0, n=arr.length; i<n; i++){
//loop
}
這樣子,先把 arr.length暫存到 n 變量中去。只在開(kāi)始時(shí)獲取一次。
但是這樣就沒(méi)問(wèn)題了嗎?貌似多定義了個(gè)無(wú)意義的變量 n 。好那繼續(xù)改進(jìn)
復(fù)制代碼 代碼如下:
var arr = [];
for(var i=arr.length-1; i > -1; i--){
//loop
}
好這樣子,我們把這個(gè)循環(huán)順序倒過(guò)來(lái),就把那個(gè)n去掉了,而使用了一個(gè)常量-1。
如果應(yīng)用場(chǎng)景,允許不使用 for 循環(huán)的話。我們可在使用 while代替
善于使用這兩種循環(huán)語(yǔ)句,以提高Javascript的效率。
復(fù)制代碼 代碼如下:
var arr = [];
var i=arr.length-1;
while(i--){
//loop arr[i]
}
或者
復(fù)制代碼 代碼如下:
var arr = [];
var i=arr.length-1;
do {
// loop arr[i]
}while(--i)
這樣代碼更簡(jiǎn)潔,效率更好,特別是如果允許先執(zhí)行一次循環(huán)體的情況下,使用do while效果很明顯。
唯一的問(wèn)題是把 i 移到循環(huán)外了。
JavaScript技術(shù):javascript for循環(huán)設(shè)法提高性能,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。