1

在学习ES6的变量解构赋值的时候在demo中看到了for-of循环,现在就来总结一下JS中的各种循环

首先我们先来看看最初的循环

for(var i = 0;i<arrays.length;i++){
    console.log(arrays[i]);
}

这其实是用的最多的循环吧,如果是我我想也会首选这个循环的,因为很想后端中的for循环

但是我们要记住我们是前端工程师,我们应该跟上时代变迁的脚步,在ES5的时代到来的时候我们应该改进我们的循环了

ES5中我们可以使用内建forEach方法遍历数组

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循环来了

for (var value of myArray) {
  console.log(value);
}

这是最简洁遍历数组的方法了

这个方法避开了for-in缺陷

与forEach()不同的是,它可以正确响应break、continue和return语句

for-of也是可以遍历其他集合

例如nodeList遍历,还可以遍历字符串,将每个字符串视为Unicode字符遍历

快快用起来吧!


JameHou
595 声望10 粉丝

我只想静静地写着代码,和相爱的人平淡的过完一生


« 上一篇
Github使用
下一篇 »
let&const