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

Dmi*_*riy 6 javascript

var a = 0;
var b = -a;
Run Code Online (Sandbox Code Playgroud)

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

console.log(a === b); // true
Run Code Online (Sandbox Code Playgroud)

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

console.log(1/a === 1/b); // false
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

Raj*_*amy 7

那是因为Infinity == -Infinity根据抽象等式比较算法是假的.

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