Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么无限是NaN?_Javascript - Fatal编程技术网

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
results
NaN,但是NaN==(Infinity-Infinity)
results
false

答案在于NaN的完整形式
NaN代表而不是数字
因此,如果某事物不是数字,则无法对其进行比较或检查是否相等

从数学上来说

Infinity - Infinity = NaN   (1)

NaN == Infinity - Infinity  (2)
在(1)中,NaN持有一个表示结果不可量化的值

在(2)中,检查两个不可量化实体的相等性

希望这是有道理的


另外,我知道字符串值可以比较,但NaN的情况并非如此

因为
NaN!==NaN
。无限有时被定义为定义一个子集的能力,该子集不包括所有元素,但也是无限的。从无穷大中减去无穷大不会给出一个固定的结果,因此也不是一个数字。也就是说,如果你所知道的都不是数字,就不可能验证这两个东西是否相等。