美工网站设计是什么,网站收录引擎,软件定制解决方案,做网站CentOS还是win好Generator是ES6里面的新增规范#xff0c;ES6其实就是ES2015。ES5、ES6、ES7这些术语大家上网一查就都明白了。JavaScript是一个范程#xff0c;就是我们说的JS。ES就是ECMA Script#xff0c;是JavaScript标准的书面说法。ES4、5、6、7其实是JS这门语言发展中的不同的版本。… Generator是ES6里面的新增规范ES6其实就是ES2015。ES5、ES6、ES7这些术语大家上网一查就都明白了。JavaScript是一个范程就是我们说的JS。ES就是ECMA Script是JavaScript标准的书面说法。ES4、5、6、7其实是JS这门语言发展中的不同的版本。在不同的版本中赋予了这门语言不同的能力。 生成器的函数会返回一个生成器的对象 yield n返回n。调用的时候按照我们的理解genObj是会立马执行的。传入的值是2循环了3次以后这个n的值就变成了5。有了yield关键字以后这里的结果就并不一样了。调用gen函数的时候拿到的这个genObj它其实是一个迭代器对象并不会去执行的需要每次调用这个迭代器的next()方法才会从上一次暂停的地方开始执行直到遇到下一个yield语句。所以这里yield语句的作用就是暂停执行后面的代码。当再次调用next()方法才会继续往下执行。所以我们可以猜出这里的执行结果。第一次执行next()的时候传进去的值是2然后n执行1然后遇到yield关键字会暂停然后这个时候返回n的这个值也就是3。然后再执行next()这个时候之前保存的堆栈中n的值是3所以这里是执行1然后返回的值就是4。那再调用next()就是5。然后这个时候这个循环体也就执行完了。再调用next()的时候会拿到一个undefined值。 迭代器执行next()的时候总是返回一个对象。然后在这个对象里面总会有两个属性。转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/8486638.html