考虑以下
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
是不相等对象行为相同的组合。
考虑以下
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
是不相等对象行为相同的组合。
为什么负零等于零?
因为IEEE 754 要求它。
0
/-0
组合是相同对象行为不同的唯一组合吗?
我相信是这样。在 Javascript 中,只有数字有特殊的===
算法,0、-0、NaN 是唯一的特殊情况(ECMA-262 §11.9.6)。