JavaScript的for...in和for...of和可迭代对象

前置知识:
  • 生成器 generator函数: 比起普通的函数,函数名和function之间多了*,乍一看很像c++的指针。

    function * generatorForLoop(num) {
         
      for (let i = 0; i < num; i += 1) {
         
        yield console.log(i);
      }
    }
    
    const genForLoop = generatorForLoop(5);
    
    genForLoop.next(); // 首先 { value: 'console.log (0)', done: false }
    genForLoop.next(); // 以此类推... 1
    genForLoop.next(); // 2
    genForLoop.next(); // 3
    genForLoop.next(); // 4
    genForLoop.next(); {
          value: 'undefined', done: true }
    

    从这里看出,在执行next的时候,才输出了。因此generator 中最重要的特性—— 我们只有在使用next()的时候,才去运行它到yield,而不是执行所有代码

  • next(): next function 会返回一个对象,里面包含着两个properties,分别是valuedone
    value:就是我们在前一段中从yield那个位置接到的「值」。
    done :一个个boolean 值,如果这次generator function 执行完了,done就会变成true,反之是false。注意完全执行完的意思是:是当执行到最后一个yield时,done仍然会是false,再执行一次才会得到done为true的结果,此时的value肯定是null。

  • yeild: 普通的yeild就像return,下次从yeild那一句继续运行。

  • 在next(x࿰

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值