JavaScript:NaN的价值是什么

时间:2018-06-09 18:45:28

标签: javascript nan

由于typeof(NaN)number,其值应为numeric,但根据以下代码,它不是数字。我想了解下面代码片段背后的后台进程。



var checkVal = NaN;

if (checkVal > 0) {
  console.log("NaN is greater than 0");
} else {
  console.log("NaN is less than 0");
}

if (checkVal < 0) {
  console.log("NaN is less than 0");
} else {
  console.log("NaN is greater than 0");
}

if (checkVal == 0) {
  console.log("NaN is equal to 0");
} else {
  console.log("NaN is not equal to 0");
}
&#13;
&#13;
&#13;

在上面的代码片段中,在每个条件中它都会进入else块,这让我们感到困惑,知道NaN的值。

根据Bergi评论,NaN的值为NaN。因此,checkVal === NaN应为true,但返回false。

&#13;
&#13;
var checkVal = NaN;

if (checkVal === NaN) {
  console.log("true");
} else {
  console.log("false");
}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

NaN表示“不是数字”。它是一个特殊值,表示计算结果要么是不可能的(除以零,f.e。),要么不能使用浮点格式存储。它表示使用浮点格式未知或无法计算(或存储)的值。

NaN与其他任何内容的比较都没有任何意义。 NaN即使对自己也不平等。发生这种情况是因为它不是特定值。作为未知值,很可能不等于与不同的未知值。

documenation of NaN中阅读更多内容。