isNaN 和 Number.isNaN 函数的区别?

50 阅读1分钟
  • isNaN()是ES5的方法,函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

  • Number.isNaN()是ES6的方法,函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

    综上所述的区别:
    • isNaN方法首先转换类型,而Number.isNaN方法不用;

    • isNaN不能用来判断是否严格等于NaN,Number.isNaN方法可用