为什么 0 === -0 为真,但 1/0 === 1/-0 为假

Why 0 === -0 is true, but 1/0 === 1/-0 is false?

本文关键字:为假 为真 为什么      更新时间:2023-09-26
var a = 0;
var b = -a;

当我将以下代码发布到控制台时,我得到了true

console.log(a === b); // true

但是当我用它做一些计算时,我得到了false

console.log(1/a === 1/b); // false

为什么会这样?

这是因为根据抽象相等比较算法Infinity == -Infinity是假的。

1/0将同时产生Infinity 1/-0收益率-Infinity。所以两者都不是相等的,因此返回false.