Javascript中的加法真的很棒。
在 Chrome 和 Firefox 中,{} + 1
等于数字 1;但在 Node.js 中,{} + 1
等于字符串 '[object Object]1'。另一方面,1 + {}
在浏览器和 Node.js 中都等于 '1[object Object]'。
谁能解释为什么{} + 1
在浏览器中等于 1?
问问题
212 次
1 回答
14
这有点复杂。发生这种情况是因为大多数 JavaScript 引擎将其解释{}
为代码块,而不是对象。因此{}+1
与 基本相同+1
。如果你这样做(例如)
({}+1})
那么括号内的代码()
将被解释为表达式,而不是代码块。从而{}
成为一个实际的对象。
阅读本文了解更多详情:
http://www.2ality.com/2012/01/object-plus-object.html
文章还解释了为什么它在 Node.Js 中有所不同。
于 2012-09-04T13:08:49.337 回答