为什么要使用 `n===0`,因为 `-0===0` 和 `0===0` 都是真的?

Why is the `n===0` used, as `-0===0` and `0===0` are both true?

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

我正在看书 You don't know JS 并在那里找到了这段代码。这是检查通行证号码是否为 -0 的函数。我不明白为什么要提到比较中的第一个条件,因为它总是正确的(除非我理解错了)。请帮忙

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

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

return 值是将两个比较“&&”在一起。由于它短路,如果传递了 0 或 -0 之外的任何数字,它将 运行 第一个比较然后 return false 而无需查看第二个。