ES11 中新增了一个方法 Number.isNaN()
,用于判断一个值是否为 NaN(Not a Number)。与全局方法 isNaN()
相比,Number.isNaN()
更加严格,只有在传入值为数字类型且值为 NaN 时才返回 true。在实际项目中,这个方法很有实用价值。下面我们来详细地介绍一下它的使用方法。
语法
Number.isNaN(value)
value
:需要判断的值。如果是一个有效数字,且值为 NaN,则返回 true。如果不是,返回 false。
示例
-- -------------------- ---- ------- ------------------ -- ---- ---------------- -- ----- ------------------- --------- -- ----- ------------------------ -- ----- ----------------- -- ----- ----------------- -- ----- ----------------- -- ----- ------------------- -- ----- -------------------- -- -----
Number.isNaN()
方法的返回值与调用 isNaN()
方法的结果不同,后者会返回 true,如果传入的是一个非数字类型的值,例如 undefined,或者是一个对象或字符串。同时,也存在一些特殊情况需要注意,例如:
Number.isNaN('NaN'); // false Number.isNaN(NaN); // true Number.isNaN(parseInt('hello world!')); // true
上面的代码中,第一行为字符串 NaN,虽然它的值也是 NaN,但因为它是字符串,所以 Number.isNaN()
方法会返回 false。而第三行中我们使用了 parseInt()
方法将字符串 'hello world!'
转化为数字,但是这个字符串是无法被转化的,所以返回的值是 NaN,也即调用 Number.isNaN()
方法后,返回 true。
总结
在实际开发程序时,需要判断一个值是否为 NaN 的场景很多。在 ES11 中增加了更加严格的 Number.isNaN()
方法,可以帮助我们更加准确地判断一个值是否为 NaN,避免因为类型错误导致的程序异常行为。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6480f71d48841e989406e978