新手小白入门必看教程,js中的迭代器 iterator 和生成器 generator 到底是什么

内容预警,低级内容,菜鸟必看,大佬请绕道

在学习es6的新语法的时候,我相信不管你买什么书,里面一定有很长很长的章节在介绍【迭代器和生成器】,新手对于这两个名词真的非常陌生,即便看过所有的章节也云里雾里。所以忍不住大声问,迭代器和生成器到底是个啥?

简单来说(虽然这么说不准确,但是对于新手形成一个概念还是很有用的),

迭代器是一个方法,让变量可以循环遍历,这个变量就是可迭代对象

比如我们常用的用来遍历的方法 for....of,就是依赖于迭代器实现的,请参考我的这篇文章

javascipt中对象和数组的遍历,for in 和for of的区别是什么_我有一棵树的博客-CSDN博客_for in遍历数组拿不到javascipt中对象的遍历,for in 和for of的区别是什么https://blog.csdn.net/qq_17335549/article/details/128050897

迭代器很好理解,但是生成器就很晦涩难懂了,至少对于我来说是这样的

生成器是可以控制函数暂停、继续执行的函数,生成器是用来生成迭代器的函数

  1. 生成器是函数
  2. 生成器可以生成迭代器
  3. 在函数名称前加一个 * ,就代表是生成器函数
  4. 使用 yield  暂停函数的执行
  5. 使用 next() 继续执行函数

所以生成器到底有啥用啊?

还是没懂,其实可以这么理解,迭代器和生成器是一个底层的原理问题,比如我们在使用for ...of 的时候,如果你就直接用当然也没有问题,但是你要知道for...of的原理是迭代器,一般来说我们菜鸟的开发过程根本不会让你去写一个迭代器和生成器。

所以这个是一个原理知识,而生成器可以用来产出迭代器,- async/await 就是生成器的使用例子

async 函数+ await就是生成器+ co(一个第三方模块)的语法糖

ES6 入门教程icon-default.png?t=N7T8https://es6.ruanyifeng.com/#docs/async

 当然大佬肯定会自己写生成器函数实现一些高深的问题,但是这不是我们菜鸟需要知道的东西。

更多内容,请参考

es6 generator到底有什么用? - 知乎有没有个直观的解释icon-default.png?t=N7T8https://www.zhihu.com/question/55810122

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值