我正在玩 Rhino,并注意到这种奇怪的行为似乎是运算符优先级:
js> {}+{}
NaN
js> ''+{}+{}
[object Object][object Object]
js> ''+({}+{})
[object Object][object Object]
我希望表达式''+({}+{})
评估为"NaN"
,因为{}+{}
应该首先评估,但这不会发生。我在 V8 和 Firefox 中对此进行了测试,得到了相同的结果。
为什么在这种情况下 Javascript 似乎不遵循括号的标准优先级(4*(1+2)
仍然是预期的12
)?