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一下。