【发布时间】: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) === true。NaN是Number类型,如果你想知道它是number还是NaN,请使用isNaN
标签: javascript