欢迎光临散文网 会员登陆 & 注册

【图解系列】isNaN 和 Number.isNaN 函数的区别?

2022-07-01 16:13 作者:doubleyong  | 我要投稿

图解:

isNaN vs Number.isNaN


文字描述:

  • 函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

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

mdn引用:

如果isNaN函数的参数不是Number类型, isNaN函数会首先尝试将这个参数转换为数值,然后才会对转换后的结果是否是NaN进行判断。因此,对于能被强制转换为有效的非 NaN 数值来说(空字符串和布尔值分别会被强制转换为数值 0 和 1),返回false值也许会让人感觉莫名其妙。


下一个版本的 ECMAScript (ES2015) 包含Number.isNaN()函数。通过Number.isNaN(x)来检测变量x是否是一个NaN将会是一种可靠的做法。然而,在缺少Number.isNaN函数的情况下,通过表达式(x != x) 来检测变量 x是否是NaN会更加可靠


【图解系列】isNaN 和 Number.isNaN 函数的区别?的评论 (共 条)

分享到微博请遵守国家法律