|
方法一:通过 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);
|
|