gpt4 book ai didi

javascript - 为什么 `yield`的场景中必须加分号

转载 作者:行者123 更新时间:2023-11-29 16:40:44 25 4
gpt4 key购买 nike

我在下面编写了一个演示来演示这个问题。

我希望生成器迭代变量a,但是,冗余代码会影响它。

谁能一步一步解释为什么会发生这种情况?

我的代码是:

function* foo(){
var a = 0, c
while(a < 10){
a += 1
yield a //if the semicolon is added here, the final result is 1
[c] = [101]

}
}

var gen= foo()
console.log(gen.next().value) // [101]

最佳答案

如果加上分号,代码实际上是yield a; [c] = [101];

所以你yield a[c] = [101]; block不会影响实际的返回值。

否则,代码为yield a[c] = [101];这是 [101] :

function* foo(){
var a = 0, c
while(a < 10){
a += 1
yield a[c] = [101];

}
}

var gen= foo()
console.log(gen.next().value) // [101]

关于javascript - 为什么 `yield`的场景中必须加分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46240541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com