gpt4 book ai didi

javascript - () 括号,它在 ({__proto__ : []} instanceof Array) in JavaScript 的语句中做了什么

转载 作者:搜寻专家 更新时间:2023-11-01 05:27:49 26 4
gpt4 key购买 nike

在 JavaScript 中,以下给出错误:

{ __proto__: [] } instanceof Array;

如果我将它括在 (方括号) 中,它没有错误:

({ __proto__: [] } instanceof Array);

这是为什么?

最佳答案

当解释器看到一个{时,默认情况下,它会认为你正在声明一个新的 block ,例如

{
console.log('foo');
}

结果:

{
__proto__: []
} instanceof Array

没有多大意义 - 你不能 instanceof block 。

但是当它被括在圆括号中时,解释器知道期望圆括号内有一个,而不是一个 block - 所以它将圆括号内的所有内容计算为一个表达式,并且(正确地)将 { __proto__: [] } 解析为一个对象。

这与为什么在解构为已分配的变量时必须在该行两边加上括号的原因完全相同:

let x, y;
({x, y} = { x: 'foo', y: 'bar'});
console.log('done ' + x);

有效,但没有 () 就不行:

let x, y;
{x, y} = { x: 'foo', y: 'bar'};
console.log('done ' + x);

关于javascript - () 括号,它在 ({__proto__ : []} instanceof Array) in JavaScript 的语句中做了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50034429/

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