《深入理解ES6》阅读随笔
在 ES5 及以前,Javascript 中在实现集合遍历时,都是通过变量记录的方式来完成;而在 ES6 中,新增了具有程序化思想的迭代器,它使开发者们可以更方便灵活的去操作集合。
迭代器
迭代器是一个特殊对象,一个具有特殊程序设计的专门接口。在一个迭代器实例调用 next() 之后,会返回一个包含 value 和 done 的值,value 代表当前释放的迭代内容,done 代表是否迭代完毕,如果为 false 代表还有记录没遍历到,如果为 true 代表便利完毕。
生成器
通过在 function 和函数名之间加 * 的方式声明,然后在函数内部使用 yield 关键字来控制迭代,每个声明 yield 的地方,只有迭代器执行 next() 后才会执行;下面是一个例子:
function* test() {
yield 1;
yield 2;
yield 3;
}
const t1 = test();
console.log(t1.next()); // { value: 1, done: false }
console.log(t1.next()); // { value: 2, done: false }
console.log(t1.next()); // { value: 3, done: false }
console.log(t1.next()); // { value: undefined, done: true } 遍历完毕
for-of
for-of 是新增的遍历功能,其内置了迭代器,它是一个典型的迭代器运用。
网友评论