JavaScript 中的 {} - 0 VS ({} - 0) [重复]

2024-04-23

在Chrome JavaScript控制台中,为什么包装语句{} - 0括号中改变返回值?

{} - 0    // Returns -0
({} - 0)  // Returns NaN

将单个语句括在括号中会改变所包含的值,这似乎非常奇怪。我在这里缺少什么?


该行有两种可能的解释{} - 0:

  1. 它可以解释为{}; -0, where {}被解释为空块语句,并且-是一元否定运算符(所以-0只是“负零”)。计算时 this 的值是最后一条语句的值,即 -0。
  2. 它可以解释为({} - 0), where {}被解释为空对象,并且-是减法运算符(所以0减去{}).

在您的第一行中,这是不明确的,因此它将选择第一个解释。在第二行中,第一个解释无效(因为块语句永远不能成为表达式的一部分,您用括号强制执行此操作)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 中的 {} - 0 VS ({} - 0) [重复] 的相关文章

随机推荐