色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

javascript for循環(huán)設(shè)法提高性能

一般在Javascript里對數(shù)組進行遍歷一般是使用for循環(huán),像下面一樣
復(fù)制代碼 代碼如下:
var arr = [];
for(var i=0; i<arr.length; i++){
//loop
}

這種代碼最大的問題,就在于每次循環(huán)時都要通過 .操作符獲取 .length,增加了開銷。那么我們可以這樣改進。
復(fù)制代碼 代碼如下:
var arr = [];
for(var i=0, n=arr.length; i<n; i++){
//loop
}

這樣子,先把 arr.length暫存到 n 變量中去。只在開始時獲取一次。
但是這樣就沒問題了嗎?貌似多定義了個無意義的變量 n 。好那繼續(xù)改進
復(fù)制代碼 代碼如下:
var arr = [];
for(var i=arr.length-1; i > -1; i--){
//loop
}

好這樣子,我們把這個循環(huán)順序倒過來,就把那個n去掉了,而使用了一個常量-1。
如果應(yīng)用場景,允許不使用 for 循環(huán)的話。我們可在使用 while代替
善于使用這兩種循環(huán)語句,以提高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)

這樣代碼更簡潔,效率更好,特別是如果允許先執(zhí)行一次循環(huán)體的情況下,使用do while效果很明顯。
唯一的問題是把 i 移到循環(huán)外了。

JavaScript技術(shù)javascript for循環(huán)設(shè)法提高性能,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 天柱县| 政和县| 龙南县| 攀枝花市| 昭通市| 夹江县| 长兴县| 肥城市| 石渠县| 灌阳县| 呈贡县| 馆陶县| 江西省| 鄂温| 资溪县| 安溪县| 西林县| 徐闻县| 衡山县| 南充市| 许昌县| 茌平县| 镇原县| 开封市| 丰城市| 酒泉市| 漳浦县| 九龙城区| 山东省| 屯留县| 旌德县| 东乡族自治县| 正宁县| 香河县| 五河县| 淳安县| 泰来县| 农安县| 台中县| 青川县| 桃江县|