javascript for循環(huán)設(shè)法提高性能
更新時(shí)間:2010年02月24日 21:37:00 作者:
讓你的for循環(huán)提升性能的寫法,需要的朋友可以參考下。
一般在javascript里對(duì)數(shù)組進(jìn)行遍歷一般是使用for循環(huán),像下面一樣
var arr = [];
for(var i=0; i<arr.length; i++){
//loop
}
這種代碼最大的問題,就在于每次循環(huán)時(shí)都要通過 .操作符獲取 .length,增加了開銷。那么我們可以這樣改進(jìn)。
var arr = [];
for(var i=0, n=arr.length; i<n; i++){
//loop
}
這樣子,先把 arr.length暫存到 n 變量中去。只在開始時(shí)獲取一次。
但是這樣就沒問題了嗎?貌似多定義了個(gè)無意義的變量 n 。好那繼續(xù)改進(jìn)
var arr = [];
for(var i=arr.length-1; i > -1; i--){
//loop
}
好這樣子,我們把這個(gè)循環(huán)順序倒過來,就把那個(gè)n去掉了,而使用了一個(gè)常量-1。
如果應(yīng)用場(chǎng)景,允許不使用 for 循環(huán)的話。我們可在使用 while代替
善于使用這兩種循環(huán)語(yǔ)句,以提高javascript的效率。
var arr = [];
var i=arr.length-1;
while(i--){
//loop arr[i]
}
或者
var arr = [];
var i=arr.length-1;
do {
// loop arr[i]
}while(--i)
這樣代碼更簡(jiǎn)潔,效率更好,特別是如果允許先執(zhí)行一次循環(huán)體的情況下,使用do while效果很明顯。
唯一的問題是把 i 移到循環(huán)外了。
復(fù)制代碼 代碼如下:
var arr = [];
for(var i=0; i<arr.length; i++){
//loop
}
這種代碼最大的問題,就在于每次循環(huán)時(shí)都要通過 .操作符獲取 .length,增加了開銷。那么我們可以這樣改進(jìn)。
復(fù)制代碼 代碼如下:
var arr = [];
for(var i=0, n=arr.length; i<n; i++){
//loop
}
這樣子,先把 arr.length暫存到 n 變量中去。只在開始時(shí)獲取一次。
但是這樣就沒問題了嗎?貌似多定義了個(gè)無意義的變量 n 。好那繼續(xù)改進(jìn)
復(fù)制代碼 代碼如下:
var arr = [];
for(var i=arr.length-1; i > -1; i--){
//loop
}
好這樣子,我們把這個(gè)循環(huán)順序倒過來,就把那個(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效果很明顯。
唯一的問題是把 i 移到循環(huán)外了。
您可能感興趣的文章:
- jQuery的Each比JS原生for循環(huán)性能慢很多的原因
- JS常用的幾種數(shù)組遍歷方式以及性能分析對(duì)比實(shí)例詳解
- JavaScript遍歷數(shù)組的三種方法map、forEach與filter實(shí)例詳解
- JS數(shù)組的遍歷方式for循環(huán)與for...in
- js中的for如何實(shí)現(xiàn)foreach中的遍歷
- JavaScript中的數(shù)組遍歷forEach()與map()方法以及兼容寫法介紹
- JavaScript forEach()遍歷函數(shù)使用及介紹
- javascript forEach通用循環(huán)遍歷方法
- JS 使用for循環(huán)遍歷子節(jié)點(diǎn)查找元素
- JavaScript中for-in遍歷方式示例介紹
- javascript for循環(huán)性能測(cè)試示例
相關(guān)文章
JS判斷字符串是否為整數(shù)的方法--簡(jiǎn)單的正則判斷
今天小編就為大家分享一篇JS判斷字符串是否為整數(shù)的方法--簡(jiǎn)單的正則判斷,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07js實(shí)現(xiàn)文本框輸入文字個(gè)數(shù)限制代碼
這篇文章主要介紹了js實(shí)現(xiàn)文本框輸入文字個(gè)數(shù)限制代碼,文本框輸入的文字個(gè)數(shù)并不是無限制的,一般都會(huì)限定一個(gè)輸入最高上限,如何限制,請(qǐng)看本文2015-12-12js實(shí)現(xiàn)簡(jiǎn)單的省市縣三級(jí)聯(lián)動(dòng)效果實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)簡(jiǎn)單的省市縣三級(jí)聯(lián)動(dòng)效果,以完整實(shí)例形式分析了JavaScript實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-02-02javascript面向?qū)ο笾L問對(duì)象屬性的兩種方式分析
這篇文章主要介紹了javascript面向?qū)ο笾L問對(duì)象屬性的兩種方式分析,實(shí)例分析了直接訪問對(duì)象屬性的方式與數(shù)組訪問方式,需要的朋友可以參考下2015-01-01