什么是NaN?它的类型是什么?如何可靠地测试一个值是否等于NaN?

当数学运算的结果的值不是一个有效数字的时候,它就是NaN,本质上NaN也是一个数字,因为它的类型是Number的。

如何判断一个值是否等于NaN?这里罗列3种可靠的判断方法:

1、利用NaN的特性:不等于任何值

function myIsNaN(n) {
    return n !== n
}

let a = 1;
let b = 2;
let c = 'bar';
let d = a * b;
let e = a * c;


console.log(myIsNaN(d))    // false
console.log(myIsNaN(e))    // true

 

2、 使用内置isNaN方法加上判断数据类型

function myIsNaN2(n) {
    return isNaN(n) && typeof n === 'number'
}


let a = 1;
let b = 2;
let c = 'bar';
let d = a * b;
let e = a * c;


console.log(myIsNaN2(d))    // false
console.log(myIsNaN2(e))    // true

 

3、利用ES6的Object.is方法

function myIsNaN3(n) {
    return Object.is(n, NaN)
}


let a = 1;
let b = 2;
let c = 'bar';
let d = a * b;
let e = a * c;


console.log(myIsNaN3(d))    // false
console.log(myIsNaN3(e))    // true

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值