ES6学习笔记六:迭代

一:迭代器

它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。

 ES6创造了一种新的遍历命令for...of循环,Iterator接口主要供for...of调用

二:创建可迭代对象

一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的”(iterable)。

Symbol.iterator属性是当前数据结构默认的遍历器生成函数。执行这个函数,就会返回一个遍历器。

遍历器对象中定义了遍历方法:next、return、throw

return方法的使用场合是,如果for...of循环提前退出(通常是因为出错,或者有break语句或continue语句),就会调用return方法。如果一个对象在完成遍历前,需要清理或释放资源,就可以部署return方法。

三:原生的内置了遍历器的数据结构

  • Array
  • Map
  • Set
  • String
  • TypedArray
  • 函数的 arguments 对象

四:遍历方式对比

for...in:for...in循环可以遍历数组的下标,或对象的属性名for...in循环主要是为遍历对象而设计的,不适用于遍历数组。(键遍历)

数组.forEach(func(){todo}):遍历数组成员,中途不能退出

for...of:调用数据结构的迭代器进行迭代,返回的是成员的值。(值遍历)

原文地址:https://www.cnblogs.com/ygj0930/p/7248288.html