【问题标题】:What is typeof(NaN) in Javascript? [duplicate]Javascript 中的 typeof(NaN) 是什么? [复制]
【发布时间】:2013-11-17 20:56:30
【问题描述】:

我碰巧偶然发现了一个代码,它检查像这样传递给它的变量的typeof

function myNaN(b){

  if(typeof(b) == 'number'){
    // execute some code
  }

}

每当我调用此函数时,它都可以正常工作,并且如果传递了数字,则通过 if 条件。

但是,当我将 NaN(它是某个其他函数的输出)传递给此函数时,if 条件返回 true。

我的问题是 typeof(NaN) == 'number' 正确吗?如果是这样,为什么?是不是很混乱?

只需尝试在浏览器控制台中运行 console.log(typeof(NaN)); 即可了解我的意思。

【问题讨论】:

  • Number.isNaN(Number.NaN) === trueNaNNumber 类型,如果你想知道它是 number 还是 NaN,请使用 isNaN

标签: javascript


【解决方案1】:

你为什么不使用:"isNan("1234")" 函数? 如果有帮助,这里有一些链接:http://www.w3schools.com/jsref/jsref_isnan.asp

【讨论】:

  • isNaN() 尝试强制转换为数字,因此您可能会得到一些令人困惑的结果,例如这些。 isNaN(null); // falseisNaN(" "); // false
【解决方案2】:

是的,typeof(NaN) 是数字。您可以使用函数isNaN来检查该值是否为NaN

【讨论】:

  • NaN 是“非数字”的简写,当您尝试解析(Int/Float)非数字字符串时会得到 NaN。
猜你喜欢
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
  • 2020-03-25
  • 2020-05-09
  • 1970-01-01
相关资源
最近更新 更多