在学习ES6的变量解构赋值的时候在demo中看到了for-of循环,如今就来总结一下JS中的各类循环javascript
for(var i = 0;i<arrays.length;i++){ console.log(arrays[i]); }
这实际上是用的最多的循环吧,若是是我我想也会首选这个循环的,由于很想后端中的for循环前端
可是咱们要记住咱们是前端工程师,咱们应该跟上时代变迁的脚步,在ES5的时代到来的时候咱们应该改进咱们的循环了java
ES5中咱们能够使用内建forEach方法遍历数组node
myArrays.forEach(function(value){ console.log(value); })
以上的代码看上去是否是很简洁,可是它也有一个缺点的就是不能使用break退出循环或者return返回外层函数后端
那么咱们再看看for-in循环吧数组
for (var index in myArray) { // 千万别这样作 console.log(myArray[index]); }
在JS中for-in循环适用于对象的遍历,而不适用于数组的遍历前端工程师
使用for-in循环数组在赋值的时候会赋值为字符串赋值函数
做用于数组的for-in循环体除了遍历数组元素外,还会遍历自定义属性。举个例子,若是你的数组中有一个可枚举属性myArray.name,循环将额外执行一次,遍历到名为“name”的索引。就连数组原型链上的属性都能被访问到。
最让人震惊的是,在某些状况下,这段代码可能按照随机顺序遍历数组元素。学习
for-of循环来了code
for (var value of myArray) { console.log(value); }
这是最简洁遍历数组的方法了
这个方法避开了for-in缺陷
与forEach()不一样的是,它能够正确响应break、continue和return语句
for-of也是能够遍历其余集合
例如nodeList遍历,还能够遍历字符串,将每一个字符串视为Unicode字符遍历
快快用起来吧!