6

考虑以下

var l = console.log.bind(console);
l(-0); // 0
l(0); // 0
l(0 === -0); // true
l(0 == -0); // true
l(1 / 0); // Infinity
l(1 / -0); // -Infinity
  • 为什么负零等于零?
  • 既然它是平等的,为什么它的行为不同?

奖金问题:

  • 0/-0组合是相同对象行为不同的唯一组合吗?

我知道NaN/NaN是不相等对象行为相同的组合。

4

1 回答 1

7

为什么负零等于零?

因为IEEE 754 要求它

0/-0组合是相同对象行为不同的唯一组合吗?

我相信是这样。在 Javascript 中,只有数字有特殊的===算法,0、-0、NaN 是唯一的特殊情况(ECMA-262 §11.9.6)。

于 2011-07-24T15:12:47.677 回答