Iterator
一种数据结构只要部署了 Iterator 接口,我们就称这种数据结构是“可遍历的”(iterable)。
一个数据结构只要具有 Symbol.iterator 属性,就可以认为是“可遍历的”(iterable)。
原生具备 Iterator 接口的数据结构如下。
- Array
- Map
- Set
- String
- TypedArray
- 函数的 arguments 对象
- NodeList 对象
调用Iterator的场合
- 解构赋值
- 扩展运算符
- yield*
- for of
- Array.from()
- Map() Set() WeakMap() WeakSet()
- Promise.all()
- Promise.race()
Generator
- 返回一个遍历器对象
Generator 函数执行后,返回一个遍历器对象。该对象本身也具有Symbol.iterator属性,执行后返回自身。()