大家好,欢迎来到IT知识分享网。
isNaN用法:
对于可以被Number转换为数值的值x,那么isNaN(x)就是false
如果不可以被Number转换为数值的值y,那么isNaN(y)就是true
对于Date()这种特殊对象:
new Date()是可以被Number转化为数值的,所以isNaN(new Date()) === false
而new Date().toString()
返回的是格式化的字符串,不能被Number转化为数值,所以isNaN(new Date().toString()) === true
注意:
isNaN()和Number.isNaN()区别
Number('测试') // 输出NaN // 因为没有将“测试”成功转换成Number类型,所以下面代码输出true console.log(isNaN('测试')) // true
Number.isNaN判断传入的参数是否严格的等于NaN(也就是 ===)。
那一般在什么情况下会用到Number.isNaN呢?
当两个变量进行运算时,我们可以使用Number.isNaN来判断它的值是否为NaN:
console.log(Number.isNaN(2/'测试')); // 输出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。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/131055.html