老司机 发表于 2023-4-26 14:29:41

在JS中,如何判断一个值是不是NaN?

方法一:通过 isNaN() 判断 (推荐)

let num = NaN;
if (isNaN(num)) {
console.log("num is NaN");// 输出结果:num is NaN
}
方法二:根据NaN自身的特点,NaN具有非自反的特点,所谓的非自反就是说,NaN 与谁都不相等,包括它本身,但在 NaN != NaN 下会返回true

let num = NaN;
if(num != num) {
    console.log('num is NaN');
}

// 只有 num为NaN时为true,其他情况下num都为false;
面试题:编写一个函数sum,传入两个字符串数字并进行求和,并输出以下结果

// sum('3','10')    ======>    13
// sum('3a','10')   ======>    throw error


function sum(a, b) {
// 对传入的参数进行隐式转换
a *= 1;
b *= 1;

let sum = a + b;

if (sum != sum) {   // 也可通过 isNaN(sum) 判断
    // 由于'3a' 通过隐式转换,转换成为NaN,所以通过NaN非自反的值的特性,如果sum为NaN,则返回'throw error'
    return "throw error";
} else {
    return sum;
}
}

var res = sum("3", "10");
console.log(res);

页: [1]
查看完整版本: 在JS中,如何判断一个值是不是NaN?