码迷,mamicode.com
首页 > 其他好文 > 详细

Es6 Symbol.iterator

时间:2017-08-14 16:29:19      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:隐藏   iterator   代码   技术分享   遍历数组   values   back   function   循环结构   

Symbol.iterator 为每一个对象定义了默认的迭代器。该迭代器可以被 for...of 循环结构使用。

--描述

当需要迭代一个对象的时候(比如在 for...of 循环的开始时),它的 @@iterator 方法就会被调用一次(0 个参数),同时返回的迭代器将被用来获取被迭代出来的值。

一些内建类型拥有默认的迭代器行为,其他类型(如 Object )则没有。下表中的内建类型拥有默认的@@iterator方法:

--例如数组

var arr = ["javascript","c#","php","node"];
for(var value of arr){
    console.log(value);
}

技术分享

或者以另外一种形式读取

var newarr = arr[Symbol.iterator]();
newarr.next();
newarr.next();
newarr.next();
newarr.next();
newarr.next();

技术分享

--作用

  1. for-of 简单的外表下隐藏着强大的功能:如下
  2. 这是最简洁、最直接的遍历数组元素的语法
  3. 这个方法避开了for-in循环的所有缺陷
  4. 与forEach()不同的是,它可以正确的响应break、continue和return语句
  5. for-in循环用来遍历对象属性
  6. for-of循环用来遍历数据-例如数组中的值

 另外值得一提的是,生成器也是按照迭代器的原理进行封装的,也就是说生成器就是迭代器!

 

--

Es6 Symbol.iterator

标签:隐藏   iterator   代码   技术分享   遍历数组   values   back   function   循环结构   

原文地址:http://www.cnblogs.com/lmyt/p/7357791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!