根据此代码

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是一个数字。

最佳答案

因为NaN是JS中的特殊值,而不是类型。
sayHi(NaN)将返回true。

如果要检查值是否为数字类型,则应执行

if (typeof myAge === "number")


而且,如果您想确定不是NaN,那么

if (typeof myAge === "number" && !isNaN(myAge))

10-05 21:35