建议你,先看一下我的 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 |