ES6学习之路-1
来源:互联网 发布:集团网络电话交换机 编辑:程序博客网 时间:2024/05/19 20:21
1 Generator 生成器函数
1.next方法的参数表示上一个yield表达式的返回值,所以在第一次使用next方法时,传递参数是无效的。
function* foo(x) { var y = 2 * (yield (x + 1)); var z = yield (y / 3); return (x + y + z); } var a = foo(5); a.next() // Object{value:6, done:false}a.next() // Object{value:NaN, done:false}a.next() // Object{value:NaN, done:true}var b = foo(5); b.next() // { value:6, done:false }b.next(12) // { value:8, done:false }b.next(13) // { value:42, done:true } 2.第一次调用next方法时,就能够输入值,可以在 Generator 函数外面再包一层。function wrapper(generatorFunction) { return function (...args) { let generatorObject = generatorFunction(...args); generatorObject.next(); return generatorObject; }; }const wrapped = wrapper(function* (){console.log(`First input: ${yield}`);(此处为反引号)return 'DONE';});wrapped().next('hello!');
3 for...of循环可以自动遍历 Generator 函数时生成的Iterator对象,且此时不再需要调用next方法。function* fibonacci() { let [prev, curr] = [0, 1]; for (;;) { [prev, curr] = [curr, prev + curr]; yield curr; } } for (let n of fibonacci()) { if (n > 1000) break; console.log(n); }
阅读全文
0 0
- ES6学习之路-1
- es6学习之路(1) 安装
- 自我学习之es6(1)
- ES6之Promise学习之路
- ES6学习之路1----变量的声明
- ES6学习之路(三) 字符串扩展
- ES6学习之路(四) 数组拓展
- ES6学习之路(六) Set&WeakSet
- ES6学习之路(六) Map&WeakMet
- ES6学习之路4----字符串模版
- ES6学习之路5----数组方法
- ES6学习之路6----箭头函数
- ES6学习之路7----set数据结构
- ES6学习之路8----WeakSet数据结构
- ES6学习之路9----Map数据结构
- ES6学习之路10----Symbol
- JS学习之ES6
- es6学习笔记之Promise
- 第八周 项目2.1 试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符: void Trans(SqString *&s, char c1, char c2);
- C++学习之路(14)---vector报错:vector iterator not incrementable"或"vector iterator + offset out of range"
- 我与网易云音乐 之 【零】沙暴送赞
- 第947期机器学习日报(2017-04-22)
- 第945期机器学习日报(2017-04-20)
- ES6学习之路-1
- 【LeetCode】C# 105、Construct Binary Tree from Preorder and Inorder Traversal
- 第948期机器学习日报(2017-04-23)
- 自定义MessageBox
- 第946期机器学习日报(2017-04-21)
- java基础(七)——类型转换
- 单链表逆序
- 第949期机器学习日报(2017-04-24)
- 第951期机器学习日报(2017-04-26)