JavaScript赋值会改变加法操作语义吗?

JavaScript赋值会改变加法操作语义吗?,javascript,Javascript,如果对{}+1求值,则得到1,但如果将相同的表达式赋给变量,例如x={}+1,则该变量将包含字符串“[object object]1” 为什么赋值会更改右侧表达式的语义?右边的表达式不应该是“上下文无关”的吗 被解释为一个代码块,后跟+1,其计算结果为1。奥托: x = {} + 1 计算为newobject()plus1 如果您将原始声明更改为: new Object() + 1 因此,您将看到“[object object]1”。在什么情况下,您能够得到1的结果?您不会到处都得到1。在n

如果对
{}+1
求值,则得到
1
,但如果将相同的表达式赋给变量,例如
x={}+1
,则该变量将包含字符串
“[object object]1”

为什么赋值会更改右侧表达式的语义?右边的表达式不应该是“上下文无关”的吗

被解释为一个代码块,后跟
+1
,其计算结果为
1
。奥托:

x = {} + 1
计算为
newobject()
plus
1

如果您将原始声明更改为:

new Object() + 1

因此,您将看到
“[object object]1”

在什么情况下,您能够得到
1
的结果?您不会到处都得到
1
。在
node.js
中,您无法获得它。在Chrome和Firefox中是的。@thriqon:看,我很好奇,是什么让你找到了表达式
{}+1
?@user1671639。
new Object() + 1