1.for循環
1 var 2 arr = []; 3 for (var i = 0; i < arr.length; i++) { 4 if (條件1) 5 return; 6 if (條件2) 7 break; 8 if (條件3) 9 continue; 10 };
js最常用的循環必然是for循環,最基礎的用法,用於數組遍歷,但是代碼書寫過多。
1 var 2 arr = []; 3 Array.prototype.customFunc = function () { }; 4 for (var item in arr) { 5 if (!arr.hasOwnProperty(item)) { 6 if (條件1) 7 return; 8 if (條件2) 9 break; 10 if (條件3) 11 continue; 12 } 13 };
var in的形式遍歷用於遍歷數組並不理想,這個遍歷方式是遍歷屬性的,特殊情況下是可以使用,使用這種遍歷方式會將數組本身的屬性也遍歷出來,比如我們在Array上擴展一個方法customFunc,此時遍遍歷數組會將customFunc也遍歷出來達不到預期效果,非要用怎么辦,加一層判斷利用hasOwnProperty方法將數組原型中的屬性扣出去,這樣遍歷就不用擔心前面的問題了。
2.ES5遍歷方式
var arr = []; arr.forEach((item, index) => { if (條件) return; })
forEach是ES5定義的一種遍歷方式,這個方法用起來很方便,但是弊端是無法使用break,continue,也就是無法跳出一次循環,只能用return結束整個函數執行,這點就比較尷尬了,如果有跳出循環的邏輯還是用for循環吧。效率上for循環也高於forEach。
3.ES6遍歷方式
1 var 2 arr = []; 3 for (var item of arr) { 4 if (條件1) 5 return; 6 if (條件2) 7 break; 8 if (條件3) 9 continue; 10 }
ES6的for循環寫法。這種方式非常好,彌補了for(var in)的弊端,也彌補了forEach的弊端。而且這種遍歷方式還可以對String、Object等等進行遍歷。
以上列舉了一下常用的遍歷方式,在這里mark一下。