ES6可迭代对象有哪些特点

2019-07-1035次阅读javascript

ES6规定,默认的`Iterator`接口部署在数据结构的`Symbol.iterator`属性,换个角度,也可以认为,一个数据结构只要具有`Symbol.iterator`属性(`Symbol.iterator`方法对应的是遍历器生成函数,返回的是一个遍历器对象),那么就可以其认为是可迭代的。

 


可迭代对象的特点

  • 具有Symbol.iterator属性,Symbol.iterator()返回的是一个遍历器对象
  • 可以使用for ... of进行循环
  • 通过被Array.from转换为数组
let array = [1,2,3,4];

let iter = arry[Symbol.iterator]();

console.log(iter.next());//{value:1, done:false}

console.log(iter.next());//{value:2, done:false}

console.log(iter.next());//{value:3,done:false}

 

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

  • Array
  • Map
  • Set
  • String
  • TypedArray
  • 函数的arguments对象
  • NodeList对象
上一篇: javascript深拷贝和浅拷贝的区别是什么?实现一个javascript深拷贝  下一篇: javascript柯里化函数实现  

ES6可迭代对象有哪些特点相关文章