在Chrome JavaScript控制台中,为什么包装语句{} - 0
括号中改变返回值?
{} - 0 // Returns -0
({} - 0) // Returns NaN
将单个语句括在括号中会改变所包含的值,这似乎非常奇怪。我在这里缺少什么?
该行有两种可能的解释{} - 0
:
- 它可以解释为
{}; -0
, where {}
被解释为空块语句,并且-
是一元否定运算符(所以-0
只是“负零”)。计算时 this 的值是最后一条语句的值,即 -0。
- 它可以解释为
({} - 0)
, where {}
被解释为空对象,并且-
是减法运算符(所以0
减去{}
).
在您的第一行中,这是不明确的,因此它将选择第一个解释。在第二行中,第一个解释无效(因为块语句永远不能成为表达式的一部分,您用括号强制执行此操作)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)