为什么JavaScript说一个数字不是一个数字?

13 浏览
0 Comments

为什么JavaScript说一个数字不是一个数字?

我有一段JavaScript代码,期望将整数值设置给一个变量。

有些东西出了问题,所以当我尝试执行alert(A);时,它返回NaNisNaN(A);返回true。但是如果我执行alert(typeof(A));,它显示number

那么一个变量既可以是数字又不是数字吗?也许我对NaN的理解有误?


编辑: 非常感谢回答,我明白我错了,因为:

  • NaN的类型是Number
  • NaN的意思是“不是一个数字”,这与“不是Number类型”不是同一回事,
  • 0/0NaN的一个很好的例子:它仍然是一个数字,但是JavaScript(以及其他任何语言)无法确定零除以零的真实值是多少。1/0返回Infinity,这不是NaN
0