zoukankan      html  css  js  c++  java
  • 对gererator函数的认识

    在js中函数一旦运行,会运行到最后,或者遇到retuen 的时候。而generator函数打破了函数完成运行的可能。它的语法跟普通函数完全不同。

    1:function关键字和函数型之间有个*号,推荐放在关键字后面。 

    2:直接调用 Generator函数并不会执行,也不会返回运行结果,而是返回一个遍历器对象(Iterator Object)

    3: 依次调用遍历器对象的next方法,遍历 Generator函数内部的每一个状态

    4:体现了惰性,走一步停一步,yield是暂停 ,next()继续。

    5:yield跟return的区别:相似之处都是返回了表达式的值,区别,每次遇到yield就会暂停执行,调用next之后再从该位置继续向后执行,而return语句执行完,函数也就执行完毕。一个函数只能执行一次return ,而生成器函数可以左右多个yield。因此再生成器函数中可以不必要return。

    6:任何具有有效的[Symnol.iterator]接口的对象都是可迭代的,可以使用for of 遍历。for of 实际上调用的就是next方法。一旦next()方法发挥的对象的属性的done是true,for  of循环就是终止。且不包含该返回对象。

    function* gen() {
        yield 1
        yield 2
        yield 3
        yield 4
        return 5
      }
      
      for(let item of gen()) {
        console.log(item)
      }
      
      // 1 2 3 4

    7:生成器函数如果有return params,则最后的执行结果是{value:params,done:true},否则是 {value:undefined,done:true}

  • 相关阅读:
    JSON的使用总结
    pc端分页插件的使用
    简单修改选择文件样式
    H5中的本地存储
    H5中的 meta 标签及 移动页面单位
    1001. A+B Format (20)
    查看mysql的注册表路径
    win10 64位安装mysql
    [POLITICS] S Korea lawmakers vote to impeach leader
    5-17 Hashing (25分)
  • 原文地址:https://www.cnblogs.com/binglove/p/14320134.html
Copyright © 2011-2022 走看看