javascript for循環(huán)設法提高性能
更新時間:2010年02月24日 21:37:00 作者:
讓你的for循環(huán)提升性能的寫法,需要的朋友可以參考下。
一般在javascript里對數(shù)組進行遍歷一般是使用for循環(huán),像下面一樣
var arr = [];
for(var i=0; i<arr.length; i++){
//loop
}
這種代碼最大的問題,就在于每次循環(huán)時都要通過 .操作符獲取 .length,增加了開銷。那么我們可以這樣改進。
var arr = [];
for(var i=0, n=arr.length; i<n; i++){
//loop
}
這樣子,先把 arr.length暫存到 n 變量中去。只在開始時獲取一次。
但是這樣就沒問題了嗎?貌似多定義了個無意義的變量 n 。好那繼續(xù)改進
var arr = [];
for(var i=arr.length-1; i > -1; i--){
//loop
}
好這樣子,我們把這個循環(huán)順序倒過來,就把那個n去掉了,而使用了一個常量-1。
如果應用場景,允許不使用 for 循環(huán)的話。我們可在使用 while代替
善于使用這兩種循環(huán)語句,以提高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)
這樣代碼更簡潔,效率更好,特別是如果允許先執(zhí)行一次循環(huán)體的情況下,使用do while效果很明顯。
唯一的問題是把 i 移到循環(huán)外了。
復制代碼 代碼如下:
var arr = [];
for(var i=0; i<arr.length; i++){
//loop
}
這種代碼最大的問題,就在于每次循環(huán)時都要通過 .操作符獲取 .length,增加了開銷。那么我們可以這樣改進。
復制代碼 代碼如下:
var arr = [];
for(var i=0, n=arr.length; i<n; i++){
//loop
}
這樣子,先把 arr.length暫存到 n 變量中去。只在開始時獲取一次。
但是這樣就沒問題了嗎?貌似多定義了個無意義的變量 n 。好那繼續(xù)改進
復制代碼 代碼如下:
var arr = [];
for(var i=arr.length-1; i > -1; i--){
//loop
}
好這樣子,我們把這個循環(huán)順序倒過來,就把那個n去掉了,而使用了一個常量-1。
如果應用場景,允許不使用 for 循環(huán)的話。我們可在使用 while代替
善于使用這兩種循環(huán)語句,以提高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)
這樣代碼更簡潔,效率更好,特別是如果允許先執(zhí)行一次循環(huán)體的情況下,使用do while效果很明顯。
唯一的問題是把 i 移到循環(huán)外了。
您可能感興趣的文章:
- jQuery的Each比JS原生for循環(huán)性能慢很多的原因
- JS常用的幾種數(shù)組遍歷方式以及性能分析對比實例詳解
- JavaScript遍歷數(shù)組的三種方法map、forEach與filter實例詳解
- JS數(shù)組的遍歷方式for循環(huán)與for...in
- js中的for如何實現(xiàn)foreach中的遍歷
- JavaScript中的數(shù)組遍歷forEach()與map()方法以及兼容寫法介紹
- JavaScript forEach()遍歷函數(shù)使用及介紹
- javascript forEach通用循環(huán)遍歷方法
- JS 使用for循環(huán)遍歷子節(jié)點查找元素
- JavaScript中for-in遍歷方式示例介紹
- javascript for循環(huán)性能測試示例
相關文章
js實現(xiàn)簡單的省市縣三級聯(lián)動效果實例
這篇文章主要介紹了js實現(xiàn)簡單的省市縣三級聯(lián)動效果,以完整實例形式分析了JavaScript實現(xiàn)省市縣三級聯(lián)動效果的具體步驟與相關實現(xiàn)技巧,需要的朋友可以參考下2016-02-02