国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-21 00:43:36
字體:
供稿:網(wǎng)友
一般在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)外了。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 太谷县| 东兴市| 长宁区| 崇左市| 南召县| 延边| 东乡县| 赞皇县| 旅游| 孝义市| 罗平县| 南开区| 三都| 黑山县| 滨州市| 乐昌市| 新建县| 怀宁县| 玛纳斯县| 安国市| 钦州市| 根河市| 北川| 新化县| 灯塔市| 额敏县| 高碑店市| 师宗县| 齐河县| 祁门县| 吐鲁番市| 逊克县| 嘉禾县| 大方县| 邹平县| 武川县| 无为县| 临颍县| 云浮市| 赫章县| 佛坪县|