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()
plus1
如果您将原始声明更改为:
new Object() + 1
因此,您将看到
“[object object]1”
。在什么情况下,您能够得到1
的结果?您不会到处都得到1
。在node.js
中,您无法获得它。在Chrome和Firefox中是的。@thriqon:看,我很好奇,是什么让你找到了表达式{}+1
?@user1671639。
new Object() + 1