为什么在赋值中作为左侧的表达式并不总是有效?
Why expression as left-hand side in assignment doesn't always work?
此代码有效:
let foo;
(foo) = 'bar';
console.log(foo);
这让我相信任何表达式都可以作为赋值的左侧,但是,这段代码不起作用:
let foo1 = "bar";
let foo2;
let foo3;
(foo1 && foo2 && foo3) = "foobar"; // The left-hand side evaluates to undefined which can't be assigned
console.log(foo1, foo2, foo3);
是什么让左边在赋值中有效,为什么它不能总是一个表达式?
此代码有效:
let foo;
(foo) = 'bar';
console.log(foo);
这让我相信任何表达式都可以作为赋值的左侧,但是,这段代码不起作用:
let foo1 = "bar";
let foo2;
let foo3;
(foo1 && foo2 && foo3) = "foobar"; // The left-hand side evaluates to undefined which can't be assigned
console.log(foo1, foo2, foo3);
是什么让左边在赋值中有效,为什么它不能总是一个表达式?