for of
在我们之前学习的方法当中,共有三种方法去循环一个数组。
一个for循环,一个for in循环,一个forEach循环。 这三种方法,都有其各自的缺点。
例如:for循环在使用项的时候,必须使用arr[i]去取得具体的一个项目。这样语义并不明显。
forEach不能中断跳过。
for in 会循环数组的可枚举属性。
那么,ES6为我们带来了for of循环来解决以上的困难。
var arr = ["one", "two", 'three', 'four'];
for(let item of arr){ console.log(item); if(item == "two"){ break; } } 当然,这时候,我们出现了一个问题。就是,如果需要一个索引值怎么办?
for of循环并没有直接给我们提供索引值,但是很多时候,我们都是需要索引值的。
为了获得这个索引值,我们要去了解,为什么for of能够循环这个数组。
数组循环的原理 那是因为,在js当中,给数组部署了可遍历接口(Iterator)。 我们可以使用一下方法去查看这个接口。
console.log(arr.entries());
那么,这个entries()方法给我们返回的,就是一个Iterator对象,这个对象有一个方法,叫做next();我们平常去迭代一个数组,就是对一直在调用这个next方法。
for of循环也不例外,只不过,他是自动的帮我们去完成这件事。
既然知道其中原理,我们就可以利用这个原理去取得我们的index值了。
for(let [index, item] of arr.entries()){ console.log(item); console.log(value); } 应用:
使用for of去循环arguments对象。 字符串循环。 nodeList循环