前言
for循環我們在js遍歷對象或數組時都會有用到了,今天我們一起來看一些關于for循環的一些使用例子了,具體的操作細節如下文介紹。
一般寫法如下:
for(var i = 0;i< arr.length;i++) { var a = arr[i]; //... }這就是一個常見的,正序循環的for循環。這樣寫的缺點大家都明白:每次都從arr里取length與i來對比,浪費性能(而且,要是arr的長度是動態變化的,就會出現死循環)。改進這個循環的辦法是用變量保存arr.length:
for(var i = 0, al = arr.length;i< al;i++) { var a = arr[i]; //... }這樣比第一種可以略微提升點性能,要是數組長,可以提升更多。
不過這樣寫就多了個變量al,且這個變量只在用來與i對比的時候有用,看著有點雞肋。
如果循環順序對你不重要,那你可以嘗試倒序循環:
for(var i = arr.length-1;i > -1;i--) { var a = arr[i]; //... }這樣一來變量少些,且還緩存過arr長度,性能也不錯。但這里的代碼寫得有點拙劣(我故意的),首先是i = arr.length-1(居然要-1,靠),然后是循環繼續執行的條件i > -1,都讓有潔癖的人無法忍受。
下面是我常用的倒序for循環寫法:
for(var i = arr.length;i--;) { var a = arr[i]; //... }這已經非常精簡了。原理需要理解一下:for循環繼續執行的條件,是;;之間的這個判斷要為真,而這里的i 主站蜘蛛池模板: 马龙县| 招远市| 雅江县| 新泰市| 镇沅| 富顺县| 临泽县| 左云县| 乐亭县| 盐山县| 涪陵区| 湘西| 乐清市| 龙江县| 天津市| 乐业县| 衡东县| 鸡东县| 阿克| 中方县| 遂昌县| 浪卡子县| 泰兴市| 太保市| 蓬莱市| 连城县| 罗江县| 兴业县| 项城市| 宣汉县| 沐川县| 大渡口区| 营山县| 韶关市| 稷山县| 剑河县| 扎赉特旗| 出国| 张家港市| 五河县| 来宾市|