gpt4 book ai didi

javascript - ECMAScript 2015,可迭代解构表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:32:40 27 4
gpt4 key购买 nike

我现在正在试验可迭代的解构表达式,我想知道为什么特定的方法不起作用。或许你可以帮我解决这个问题。

例如有效:

var x, y, myIterable = [];
myIterable[Symbol.iterator] = function* () {
var count = 0;
while(count < 2){
yield count++;
}
};
var myArray = Array.from(myIterable);
console.log(([x,y] = myArray) === myArray);
//OUTPUT: true

但是如果我这样尝试它会返回false,你能解释一下为什么吗?

var x, y, myIterable = [];
myIterable[Symbol.iterator] = function* () {
var count = 0;
while(count < 2){
yield count++;
}
};
var myArray = Array.from(myIterable);
[x, y] = myArray;
console.log([x,y] === myArray);
//OUTPUT: false

最佳答案

尽管 === 执行了一个引用相等性检查,根据 Benjamin 的回答,您的第一个测试返回 true 的原因是因为结果任务:

[x, y] = myArray 

不是 [x, y],而是 myArray - 赋值运算符的计算结果为 RHS,而不是新分配的 LHS .

因此给定:

([x,y] = myArray) === myArray

=== 的 LHS 计算为 myArray,它与 RHS 上的对象完全相同,因此结果为 true.

关于javascript - ECMAScript 2015,可迭代解构表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34250302/

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