JS Iterator属性

发布时间 2023-04-03 19:29:45作者: 时间观测者

Iterator的作用:

  1. 为各种数据结构,提供一个统一的、便捷的访问接口
  2. 使得数据结构的成员能够按照某种次序排列
  3. es6创造了一种新的遍历命令for ... of循环,Iterator主要供for ... of循环

ES6 规定,默认的 Iterator 接口部署在数据结构的Symbol.iterator属性,或者说,一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的”(iterable)。Symbol.iterator属性本身是一个函数,就是当前数据结构默认的遍历器生成函数。执行这个函数,就会返回一个遍历器。至于属性名Symbol.iterator,它是一个表达式,返回Symbol对象的iterator属性,这是一个预定义好的、类型为 Symbol 的特殊值,所以要放在方括号内(参见《Symbol》一章)。

原生具备Iterator接口的数据结构:

  1. Array
  2. Map
  3. Set
  4. String
  5. TypedArray
  6. 函数的 arguments 对象
  7. NodeList 对象