JavaScript 中的 NaN

作者 : admin 本文共831个字,预计阅读时间需要3分钟 发布时间: 2024-06-10 共2人阅读

定义

NaN是一个特殊的数字值(typeof NaN的结果为number),是not a number的缩写,表示不是一个合法的数字。

 注意点

NaN最大的怪癖是唯一一个和自身不相等的值

NaN === NaN        // false

如何辨别NaN

isNaN() 是一个全局方法,它的作用是检查一个值是否能被 Number() 成功转换 。 如果能转换成功,就返回 false,否则返回 true 。

另外,ES6 在 Number 对象上也提供了 isNaN()  方法,和全局方法 isNaN() 不同的是,它用于判断某个值本身是否为 NaN,而不需要进行类型转换。

/*isNaN()方法*/
isNaN(NaN)    // true 不能转换
isNaN(true)   // false 能转换
isNaN(123)   // false 能转换
isNaN('123')   // false 能转换
isNaN('abc')    // true 不能转换
isNaN('123ab')   // true 不能转换
isNaN('123.45abc') // true 不能转换

/*Number.isNaN()方法*/
Number.isNaN(false)    // false 本身不是NaN
Number.isNaN(123)     // false 本身不是NaN
Number.isNaN('123')  // false 本身不是NaN
Number.isNaN('abc') // false 本身不是NaN
Number.isNaN(NaN) // true 本身是NaN

扩展

当然想确定一个值是否为NaN,可以使用以下两种方法:

  • 方法一:将isNaN()typeof结合来判断
function isValueNaN(value) {
	return typeof value === 'number' && isNaN(value)
}
  • 方法二:值是否与本身不相等(NaN是唯一有这样特征的值)
function isValueNaN(value) {
	return value !== value
}

注:本人前端小白 ,如有不对的地方还请多多指教

本站无任何商业行为
个人在线分享 » JavaScript 中的 NaN
E-->