JavaScript中的负零?

时间:2015-03-23 20:29:22

标签: javascript negative-number unary-operator

我刚才注意到我可以在JavaScript中执行以下操作:

var z = -0;
console.log(z); // prints -0

为什么一元否定在零上起作用?

这是众多JavaScript怪癖之一还是它(以某种方式)有目的?


P.S:

似乎在Firefox 38.0a2和Chrome 41.0.2272上发生了这种情况。在Node.js v0.10.36上没有发生。关于IE的Dunno。

2 个答案:

答案 0 :(得分:7)

您刚刚遇到signed zero

  

用于浮点运算的IEEE 754标准(目前大多数计算机和支持浮点数的编程语言使用)都需要+0和-0。带有符号零的实数算术可以被认为是扩展实数行的变体,使得1 / -0 =-∞和1 / + 0 = +∞;除了±0 /±0和±∞/±∞之外,除法是唯一的。

Javascript中的所有数字都是浮点数,因此必须对零进行签名。

答案 1 :(得分:-1)

我认为这不是问题。至少alert(-0 == 0)返回true。我想如果有一个用于符号的位,如果值为0,也可以设置该位。 Hovever,它仍然是相同的数字。