JavaScript 生成器函数是一种特殊的函数,它可以返回一个迭代器。使用生成器函数,可以在函数执行期间暂停并返回一个值,并在之后继续执行函数。

使用生成器函数时,需要在函数名前面加上一个星号 (*)。例如:

function* generatorFunction() {yield 1;yield 2;yield 3;
}

调用生成器函数并不会立即执行函数中的代码,而是会返回一个迭代器。要开始迭代并执行生成器函数中的代码,可以使用迭代器的 next() 方法。每次调用 next() 方法,都会执行生成器函数中的代码直到遇到下一个 yield 表达式,然后返回 yield 表达式的值。

例如,可以使用以下代码迭代生成器函数中的值:

const generator = generatorFunction();
console.log(generator.next().value); // 1
console.log(generator.next().value); // 2
console.log(generator.next().value); // 3

在生成器函数的执行结束后,迭代器的 next() 方法会返回一个对象,其中的 done 属性为 true

生成器函数可以用来创建可以在函数执行期间暂停并返回值的迭代器。

JavaScript 生成器函数相关推荐

  1. JavaScript生成器函数(generator function)

    JavaScript生成器函数(generator function) 注意:数组推导式和生成器推导式建议都不要使用.都是非标准语法. 可以使用生成器函数(generator function) 语法 ...

  2. javascript 生成器函数 function*

    今天看了一下这块的东西,文档不是很好理解.但是完完整整看下来,文档还是很全的. 这里算是总结一下在看生涩的文档之前可以了解的东西,方便看文档的时候好理解. 1,什么是生成器函数(function*) ...

  3. 细说JavaScript异步函数发展历程

    2019独角兽企业重金招聘Python工程师标准>>> < The Evolution of Asynchronous JavaScript >外文梳理了JavaScri ...

  4. JavaScript:生成器函数

    在介绍生成器函数之前先了解一下ES6的一个关键字,名为yield yield关键字,可以让代码在其出现的地方暂停执行,它只能在生成器函数内部使用. 生成器函数 生成器函数的语法比较简单在普通函数声明的 ...

  5. [译] 什么是 JavaScript 生成器?如何使用生成器?

    原文地址:What are JavaScript Generators and how to use them 原文作者:Vladislav Stepanov 译文出自:掘金翻译计划 本文永久链接:g ...

  6. TypeScript入门教程 之 生成器函数

    TypeScript入门教程 之 生成器函数 生成器函数 function *是用于创建生成器函数的语法.调用generator函数将返回一个generator对象.发电机对象如下刚刚所述迭代器接口( ...

  7. JavaScript 异步函数解析

    前言 在学习 JavaScript 的过程中,理解并灵活运用异步相关知识是一件不容易的事情,这体现在代码可读性.健壮性上,好在 ES6 出现后挽回了这一局面,我们不再需要编写可读性不高的回调嵌套,也不 ...

  8. python基础之生成器,生成器函数,列表推导式

    内容梗概: 1. 生成器和生成器函数. 2. 列表推导式. 1.生成器函数1.1 生成器函数. 就是把return换成yield def gen():print("爽歪歪")yie ...

  9. 【Python培训基础知识】Python生成器函数

    对于程序而言,内存也是很重要的,因为程序中很多数据都是保存在内存中的,如果内存中存储的数据过多,那么系统就会崩溃,这是人们不希望发生的. 可以采用生成器推导式来解决内存不足的问题.例如,利用生成器推导 ...

最新文章

  1. Stanford机器学习笔记-5.神经网络Neural Networks (part two)
  2. 普林斯顿微积分读本07第五章--可导性
  3. 微信小程序中服务器主动向小程序多个客户端发送通知消息(模板消息)的解决方法
  4. SEO流量工具-免费SEO流量排名优化工具
  5. 基于SSM框架的志愿者管理系统
  6. 10大顶级运营商转型案例剖析
  7. LODOP打印,首次打印时,图片加载不出来、加载不完全问题
  8. opencv 涂抹区域得方法
  9. vue3.0之写tsx语法
  10. 一款Python实用神器,5 行 Python 代码 实现一键批量扣图
  11. 怎么通过Unity和谷歌纸盒做一个VR游戏?(译)
  12. 如何用divi主题做独立站?
  13. 支付宝支付开发—当面付条码支付和扫码支付
  14. Canvas 画布中坐标系的位置问题(原点确定)
  15. 一位500强高管的忠告:怕你胸有鸿鹄之志,手无缚鸡之力
  16. java拼音搜索排序算法_Java汉字按照拼音排序
  17. java.lang.IllegalStateException: Failure saving state: active HomeFragment has cleared index: -1
  18. 一人之下ios扫码_一人之下ios版
  19. 2021-01-12 图像的大小计算 位深和色深
  20. 精髓,深入浅出剖析11个Zookeeper知识点,没有很难

热门文章

  1. 【超详细】支持向量机(SVM)数学推导
  2. 开源,免费,跨平台的devops批量运维工具,《卡死你3000》简介
  3. StopWatch—— 优雅的程序计时器
  4. 修改element-ui源码给el-dialog添加全屏功能
  5. day49_mybatis
  6. linux rust语言自定义安装
  7. 那些好用真香的工具网站
  8. Zbrush建模快捷键篇,8年经验总结
  9. 《Honey Select》捏人剖析
  10. Shadowrocket ios_苹果不忘iPhone 6等老机型:更新iOS12.4.9正式版|ios|iphone|airpods