根据此代码
function sayHi(myAge) {
"use strict";
if (isNaN(myAge)) {
return "Ture";
} else {
return "False";
}
}
sayHi("12");
isNan()返回false,为什么? “12”不是数字。
因为当我这样做时
var myAge = "12";
alert(myAge === 12);
它将返回false,因为“12”是一个字符串,但是12是一个数字。
答案 0 :(得分:2)
答案 1 :(得分:2)
因为NaN是JS中的特殊值,而不是类型。
sayHi(NaN)
将返回true。
如果要检查值是否为数字类型,则应该执行
if (typeof myAge === "number")
如果你想确定,那也不是NaN,那么
if (typeof myAge === "number" && !isNaN(myAge))
答案 2 :(得分:1)
isNaN()函数确定值是否为NaN。注意:isNaN函数内部的强制有一些有趣的规则;您也可以使用ECMAScript 6中定义的Number.isNaN(),或者使用typeof来确定值是否为非数字。
参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN