Skip to content
快看这页儿写了啥...

isNaN 和 Number.isNaN 函数的区别?

题干

  • isNaNNumber.isNaN 函数区别

题解

isNaN 函数会先将参数转换成数值,然后再判断是否是 NaN。如果参数不能转换成数值,也会返回 true

🌰:

js
isNaN(undefined);   // true
isNaN({});          // true
isNaN("foo");       // true

Number.isNaN 函数不会转换参数,只有当参数是数值类型并且等于 NaN 时,才会返回 true

🌰:

js
Number.isNaN(undefined);  // false
Number.isNaN({});         // false
Number.isNaN("foo");      // false
Number.isNaN(NaN);        // true

如果想判断一个值是否是 NaN,建议使用 Number.isNaN 函数,因为它更准确和可靠。

注:Number.isNaN 函数是 ES6 引入的,如果需要兼容老版本的浏览器,可以使用一个 polyfill 或者结合 typeofisNaN 来判断。

🌰:

js
function isReallyNaN(x) {
  return typeof x === "number" && isNaN(x);
}

相关

No.0050

贡献者

isboyjc's avatar isboyjc

浏览量(PV)  次  ·  独立访客(UV)  人次
不正经的前端 | 八股 · 欢迎 star ⭐