建议你,先看一下我的 ES5 的循环方法。
ES6
- for-of
ES6 里引入了一种新的循环方法,它就是for-of循环,它既比传统的for循环简洁,同时弥补了forEach和for-in循环的短板。
那 for-of 到底可以干什么呢?
- 跟
forEach相比,可以正确响应break,continue,return for-of循环不仅支持数组,还支持大多数类数组对象,例如DOM nodelist对象。for-of循环也支持字符串遍历,它将字符串视为一系列Unicode 字符来进行遍历。for-of也支持Map和Set(两者均为ES6中新增的类型)对象遍历。
我们看一下它的for-of的语法:
1 | for (var value of myArray) { |
for-of的语法看起来跟for-in很相似,但它的功能却丰富的多,它能循环很多东西。
for-of循环使用例子:
循环一个数组(Array)
1 | let iterable = [10, 20, 30]; |
break && return
1 | arr = ["1", "2", "3"] |
输出
1我们可以使用const来替代let,这样它就变成了在循环里的不可修改的静态变量。
1 | let iterable = [10, 20, 30]; |
循环一个字符串
1 | let iterable = "boo"; |
循环一个类型化的数组(TypedArray)
1 | let iterable = new Uint8Array([0x00, 0xff]); |
循环一个Map
1 | let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]); |
循环一个 Set
1 | let iterable = new Set([1, 1, 2, 2, 3, 3]); |
循环一个 DOM collection
循环一个DOM collections,比如NodeList
1 | // Note: This will only work in platforms that have |
循环一个拥有enumerable属性的对象
for–of循环并不能直接使用在普通的对象上,但如果我们按对象所拥有的属性进行循环,可使用内置的Object.keys()方法:
1 | for (var key of Object.keys(someObject)) { |
循环一个生成器(generators)
我们可循环一个生成器(generators)
1 | function* fibonacci() { // a generator function |