, 指向下一个成员, 并返回成员信息;
不断调用指针对象的 next 方法, 直到指向数据结构结束位置, 停止遍历;
注意:
Iterator 开始遍历时创建的指针对象, 其指向的起始位置不是数据结构的第一个成员...只能遍历实现了 Symbol.iterator 属性部署的数据结构 (若目标原型链上具有 Symbol.iterator 属性也可被遍历); for…of 每次循环调用 next 方法后, 都会检查返回值...循环外, 还有几个操作也要求数据结构部署 Iterator 接口;
解构赋值
扩展运算符
yield*
Array.from()
Map(), Set(), WeakMap(), WeakSet()
Promise.all...()
Promise.race()
for…of 循环
ES6 遍历所有数据结构的统一方法;
前提: 数据结构具有 Symbol.iterator 属性, 即具有 iterator 接口;
本质: for..., 检查是否 done === true, 若不是则将 value 值赋值给 for…of 临时变量, 若是则终止迭代, 且不执行赋值操作;