isNaN
isNaN
是挂在 window
上的一个函数,判断时会对传入的值进行类型判断,如果不是 number
类型会进行一次转换转换,不能正确判断出 NaN
这里传入的不是 number
类型,会进行类型转换,调用他的 valueOf
方法,该方法返回 undefiend
再对 undefiend
转换成 number
类似这样,undefined
转换成 number
正是 NaN
所以返回 true
Number.isNaN
可以正确判断出 NaN
, 首先会对传入的参数进行类型判断,如果不是number
直接返回false