function isNegZero(n) {
    n = Number( n );
    return (n === 0) && (1 / n === -Infinity);
}


我正在阅读You don't know JS这本书,并在那里找到了这段代码。该功能可检查通过次数是否为-0。我无法理解为什么提到比较中的第一个条件,因为它总是正确的(除非我理解错误)。请帮忙。

最佳答案

零总是正确的。您不仅希望isNegZero(n)对于+0为false,而且对于任何非零的数字也为false。

> let n = -Number.MIN_VALUE
> n === 0
false
> 1 / n === -Infinity
true

10-08 07:36