选择题1583/1620输出是什么?

1function* generator(i) { 2 yield i; 3 yield i * 2; 4} 5 6const gen = generator(10); 7 8console.log(gen.next().value); 9console.log(gen.next().value);
难度:
2021-07-02 创建

本题为"单选题"

参考答案:

正确选项:C:10, 20

一般的函数在执行之后是不能中途停下的。但是,生成器函数却可以中途“停下”,之后可以再从停下的地方继续。当生成器遇到yield关键字的时候,会生成yield后面的值。注意,生成器在这种情况下不 返回 (return )值,而是 生成 (yield)值。 首先,我们用10作为参数i来初始化生成器函数。然后使用next()方法一步步执行生成器。第一次执行生成器的时候,i的值为10,遇到第一个yield关键字,它要生成i的值。此时,生成器“暂停”,生成了10。 然后,我们再执行next()方法。生成器会从刚才暂停的地方继续,这个时候i还是10。于是我们走到了第二个yield关键字处,这时候需要生成的值是i*2i10,那么此时生成的值便是20。所以这道题的最终结果是10,20

最近更新时间:2021-07-03

赞赏支持

题库维护不易,您的支持就是我们最大的动力!