对于可以被Number转换为数值的值x,那么isNaN(x)就是false如果不可以被Number转换为数值的值y,那么isNaN(y)就是true
//Number.isNaN与isNaN最的区别是,Number.isNaN不存在类型转换的行为。
console.log(isNaN('测试')) //true
console.log(Number.isNaN('测试')) //false
上面代码中,都是传入字符串“测试”,但为什么结果不同?原因在于:
isNaN会通过Number方法,试图将字符串"测试"转换成Number类型,但转换失败了,因为 Number(‘测试’) 的结果为NaN ,所以最后返回true。
而Number.isNaN方法,只是严格的判断传入的参数是否全等于NaN( ‘测试’ === NaN) ,字符串当然不全等于NaN啦,所以输出false。
总结:如果能转换成Number类型,isNaN返回的就是false,如果不能反之
Number.isNaN直接判断是否严格等于NaN,不同返回false
console.log(isNaN(NaN));//true
console.log(Number.isNaN(NaN));//true
console.log(isNaN("1"));//false
console.log(isNaN([]));//false
console.log(isNaN({}));//true
console.log(Number.isNaN(NaN));//true
console.log(Number.isNaN({}))//false
标签:isNaN,false,log,NaN,Number,console,函数
From: https://blog.csdn.net/weixin_64534765/article/details/139908201