003|JavaScript ES6新特性之生成函数

栏目: JavaScript · 发布时间: 8年前

内容简介:003|JavaScript ES6新特性之生成函数

生成函数(generator function)是一种新型函数,是一个分段执行函数。它的语法与函数语法基本一致,但以下一些不同点:

  1. function关键字被替换成了 function*
  2. 返回返回值是一个生成器(generator)
  3. 通过 yield 关键字来分段

例如下面是一个生成函数:

function* sayHi()  // 使用function*来定义生成函数 {     console.log("Hello") // 代码段1     yield // 使用yield来分段      console.log("World") // 代码段2 }

生成器

首先来理解一下生成器(generator)。生成品遵循iterator协议,有next方法。普通的迭代器用于遍历对象(或容器),而生成器用于遍历生成函数的代码段。每调用一次next,则下一个代码段将被调用。

接着上例,我们来看一下生成器的使用:

var generator = sayHi() // 调用生成函数返回生成器 generator.next() // 运行代码段1 generator.next() // 运行代码段2

第一次调用next()时,代码段1运行,第二次调用next()时,代码段2运行。

yield 返回值

上述代码中,仅仅通过yield来将代码分段,实际上yield也可以传递value给生成器。通过一个例子来了解一下:

function* idMaker() {     yield 1 // 1将作为next的value     yield 2 // 2将作为next的value     yield 3 // 3将作为next的value }  var generator = idMaker() console.log(generator.next().value) // 输出 1 console.log(generator.next().value) // 输出 2 console.log(generator.next().value) // 输出 3

好了,这一节就到这里。生成函数是ES6新特性中的基础内容,希望你都掌握了。

什么是WeakMap?

请继续关注我的课程,我将在后续课程中帮大家依次解答上述问题。

如果你热爱计算机,希望一起切磋交流,欢迎加我为好友!

003|JavaScript ES6新特性之生成函数

我的微信


以上所述就是小编给大家介绍的《003|JavaScript ES6新特性之生成函数》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)

程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)

左程云 / 电子工业出版社 / 109.00元

《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》是一本程序员代码面试"神书”!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一痛点,本书选取将近300道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到接近万无一失。"刷”完本书后,你就是"题王”!《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》......一起来看看 《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具