一、isNaN
isNaN(val):通过Number(val)隐式地将val转换为数字,结果为NaN时,返回true,否则返回false
1、'100'
、''
、200
、true
、null
、[]
这些值使用Number()转换都是数字,所以通过isNaN判断结果都是false
2、NaN
、'100a'
、'a'
、undefined
、{a: 1}
、[1, 2]
这些值使用Number()转换结果是NaN,所以通过isNaN判断结果都是true
3、实现isNaN函数
function myIsNaN(val) {
const res = Number(val) + ''
return res === 'NaN'
}
二、Number.isNaN
Number.isNaN(val):ES6的方法,判断val是否全等于NaN,是则返回true,否则返回false