1.迭代:
按照顺序反复多次执行一段代码。会在一个有序集合上进行,例:数组。
实现Iterable接口:
(1)字符串
(2)数组
(3)映射
(4)集合
(5)arguments对象
(6)NodeList和DOM集合类型
2.默认迭代器:
暴露一个属性,且这个属性必须使用特殊的Symbol.iterator作为键。
let str = ‘abc’;
str[Symbol.iterator] //返回迭代器工厂函数
str[Symbol.iterator] ()//调用工厂函数会生成一个迭代器
3.接受可迭代的对象的原生语言包括:
(1)for - of
(2)数组解构
(3)扩展操作符
(4)Array.from()
(5)创建集合
(6)创建映射
这些原生语言结构会在后台调用工厂函数,从而创建一个迭代器,不需要显示调用。
4.迭代器API的next方法,可知道迭代器的下一个位置。
返回一个IteratorResult对象,{
done:false//可迭代下一个对象,true,不可迭代下一个对象
value:可迭代对象的下一个位置
}
5.迭代器对象在迭代期间修改了,迭代器也会反应相应的变化。