0%

isNaN和Number.isNaN

isNaN

isNaN 是挂在 window 上的一个函数,判断时会对传入的值进行类型判断,如果不是 number 类型会进行一次转换转换,不能正确判断出 NaN

1628957097548SL6lFH

这里传入的不是 number 类型,会进行类型转换,调用他的 valueOf 方法,该方法返回 undefiend 再对 undefiend 转换成 number

类似这样,undefined 转换成 number 正是 NaN 所以返回 true

1628957230645WpG9Lz

Number.isNaN

可以正确判断出 NaN, 首先会对传入的参数进行类型判断,如果不是number 直接返回false

1628957434248PTvcm5