ES6 新特性(三)
1 迭代器
1.1 介绍
迭代器是一种接口,为各种不同的数据接口提供统一的访问机制。任何数据结构只要部署 iterator 接口(拥有并实现 Smbol.iterator 属性),就可以完成遍历操作。
ES6 创造了一种新的遍历命令 for...of 循环,iterator 接口主要提供 for...of 消费
原生具备 iterator 接口的数据(可用 for of 遍历)
Array
Arguments
Set
Map
String
TypedArray
NodeList
工作原理
创建一个指针对象,指向当前数据结构的起始位置
第一次调用对象的 next 方法,指针自动指向数据结构的第一个成员
接下来不断调用 next 方法,指针一直往后移动过,直到指向最后一个成员
复制代码
1.2 应用
自定义遍历数据
复制代码
2 生成器
2.1 介绍
生成器就是一种特殊的函数,用于异步编程。ES5 使用回调函数实现异步编程:node fs、ajax、mongodb
复制代码
【图 1】
2.2 参数传递
复制代码
【图 2】
解释说明:
首次调用 next 方法不能传参,因为参数会作为上一次 yield 语句的返回值,没有意义 V8 引擎也会忽略
yield 语句的返回结果,与 next()返回结果是两码事。yield 语句的返回结果由下一次调用 next 方法的参数决定,而 next()返回结果,由 yield 后的值决定。
2.2 应用
复制代码
3 Promise
版权声明: 本文为 InfoQ 作者【阡陌r】的原创文章。
原文链接:【http://xie.infoq.cn/article/f2296146a68e3891b33a1c514】。文章转载请联系作者。
评论