Javascript 为什么无限是NaN?
我被下面提到的这种特殊情况所困扰。有人能给我解释一下以下行为的原因吗Javascript 为什么无限是NaN?,javascript,Javascript,我被下面提到的这种特殊情况所困扰。有人能给我解释一下以下行为的原因吗 为什么Infinity-InfinityresultsNaN,但是NaN==(Infinity-Infinity)resultsfalse?答案在于NaN的完整形式 NaN代表而不是数字 因此,如果某事物不是数字,则无法对其进行比较或检查是否相等 从数学上来说 Infinity - Infinity = NaN (1) NaN == Infinity - Infinity (2) 在(1)中,NaN持有一个表示结果不
为什么
Infinity-Infinity
resultsNaN,但是NaN==(Infinity-Infinity)
resultsfalse
?答案在于NaN的完整形式NaN代表而不是数字
因此,如果某事物不是数字,则无法对其进行比较或检查是否相等 从数学上来说
Infinity - Infinity = NaN (1)
NaN == Infinity - Infinity (2)
在(1)中,NaN持有一个表示结果不可量化的值
在(2)中,检查两个不可量化实体的相等性
希望这是有道理的
另外,我知道字符串值可以比较,但NaN的情况并非如此 因为
NaN!==NaN
。无限有时被定义为定义一个子集的能力,该子集不包括所有元素,但也是无限的。从无穷大中减去无穷大不会给出一个固定的结果,因此也不是一个数字。也就是说,如果你所知道的都不是数字,就不可能验证这两个东西是否相等。