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

时间:2013-10-09 19:06:51

标签: javascript

如果您评估{} + 1,则获得1,但如果您将相同的表达式分配给变量,例如x = {} + 1,则该变量将包含字符串"[object Object]1"。< / p>

为什么赋值会改变右侧表达式的语义?右手边的表达不应该是“无背景的”吗?

1 个答案:

答案 0 :(得分:7)

{} + 1

被解释为后跟+1的代码块,其值为1。 OTOH:

x = {} + 1

评估为new Object()1

如果您将原始陈述更改为:

new Object() + 1

结果会看到"[object Object]1"