-
isNaN()是ES5的方法,函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。
-
Number.isNaN()是ES6的方法,函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。
综上所述的区别:
-
isNaN方法首先转换类型,而Number.isNaN方法不用;
-
isNaN不能用来判断是否严格等于NaN,Number.isNaN方法可用
-