Iterator和for…of循环
Iterator(遍历器)的概念
Iterator作用
1,为各种数据解构,提供一个统一的,简便的访问接口
2.是数据解构的成员能够按某种次序排列
3,创造一种新的遍历命令for…of循环,Interator接受主要供for…of消费
Iterator的遍历过程就是不断调用next方法,直到指针指向结束为止,
每次返回一个包含value和done两个属性的对象,value是成员的值,done属性是一个布尔值判断是否遍历结束
Iterator接口
默认的Iterator接口不熟在数据结构的Symbol.iterator属性,这是一个函数,执行返回一个遍历器.
原生具备Interator接口的数据结构为
- Array
- Map
- Set
- String
- TypedArray
- 函数的 arguments 对象
NodeList 对象
let arr = [‘a’, ‘b’, ‘c’];
let iter = arrSymbol.iterator;iter.next() // { value: ‘a’, done: false }
iter.next() // { value: ‘b’, done: false }
iter.next() // { value: ‘c’, done: false }
iter.next() // { value: undefined, done: true }
调用Iterator接口的场合
(1)解构赋值
(2)扩展运算符
(3)yield*
(4)其他场