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. 零起点学算法22——华氏摄氏温度转换
  2. mac下vi语法高亮
  3. Silverlight客户端分页 DataPager控件的使用
  4. 【直播预告】计算机视觉中数据增强原理和实践
  5. linux 内存溢出排查_记一次JAVA 线上故障排查完整套路
  6. listActivity和ExpandableListActivity的简单用法
  7. Linux mv命令:移动文件或改名
  8. BZOJ 1232 USACO 2008 Nov. 安慰奶牛Cheer
  9. Vista工具箱 v3.1
  10. Wireshark实战分析之DHCP协议(二)
  11. CSDN博客停用公告
  12. 【云栖精选】6篇深度!解除MySQL数据同步疑惑+Docker技术示例
  13. w10计算机字体怎么设置在哪里设置,如何设置修改win10系统电脑的显示字体
  14. Hanlp-地名识别调试方法详解
  15. 【StyleGAN代码学习】StyleGAN损失函数与训练过程
  16. allt什么意思_all是什么意思_all怎么读_all翻译_用法_发音_词组_同反义词_全部的-新东方在线英语词典...
  17. 开学季适合学生党的蓝牙耳机,音质好的蓝牙耳机排行
  18. 手机浏览网页或打开App时莫名弹出支付宝领红包界面的原因及应对措施
  19. linux编译谷歌浏览器方法,构建Linux版本的谷歌Chrome浏览器
  20. navigation_plugin

热门文章

  1. 挣值法的三个参数及四个指标总结
  2. php mysql 显示数据库连接失败_php mysql_connect 连接数据库失败解决方案
  3. SpringBoot中POI 导入 导出
  4. linux 文件大小转换,linux下创建一个指定文件大小,并实现从ext2到ext3的转换
  5. macOS的Chrome安装插件提示 程序包无效
  6. 基于ASP.NET的数码产品销售管理系统
  7. QML学习【一】QML语言基础
  8. 8亿”斗图大军“助力940万“高考大军“
  9. 全国职业院校技能大赛网络建设与运维赛项赛题(五)
  10. 龙蜥白皮书精选:开源 RISC-V 技术支持软硬件全栈平台