Javascript 为什么要使用'n==0',因为'-0==0'和'0==0'都是真的?
我正在读《你不知道JS》一书,在那里找到了这段代码。此函数用于检查通行证编号是否为-0。我无法理解为什么在比较中提到第一个条件,因为它总是会是真的(除非我理解错误)。请帮忙。对于零,它总是正确的。您希望Javascript 为什么要使用'n==0',因为'-0==0'和'0==0'都是真的?,javascript,typescript,comparison,Javascript,Typescript,Comparison,我正在读《你不知道JS》一书,在那里找到了这段代码。此函数用于检查通行证编号是否为-0。我无法理解为什么在比较中提到第一个条件,因为它总是会是真的(除非我理解错误)。请帮忙。对于零,它总是正确的。您希望isNegZero(n)不仅对+0为false,而且对任何非零的数字也是false function isNegZero(n) { n = Number( n ); return (n === 0) && (1 / n === -Infinity); } 返回值是
isNegZero(n)
不仅对+0
为false,而且对任何非零的数字也是false
function isNegZero(n) {
n = Number( n );
return (n === 0) && (1 / n === -Infinity);
}
返回值是两个比较值&&。由于它短路,如果传递了0或-0之外的任何数字,它将运行第一次比较,然后返回false,而不需要查看第二次比较。可能会看到。
> let n = -Number.MIN_VALUE
> n === 0
false
> 1 / n === -Infinity
true