nan(not a number)在 javascript 中表示一个无效的数值,是无法作为数字解读的一个特殊值。 nan 通常是由于对非数值字符串进行数学运算、对空值或未定义值进行数学运算、尝试将非数字转换为数字或对数字进行无效操作而产生的。使用 isnan() 函数可以检查一个值是否是 nan,而 nan 具有不等于任何其他值(包括自身)、无法通过比较运算符进行比较以及是唯一的非有限值等特殊属性。处理 nan 时,可以采取检查输入、使用 isnan() 函数识别和处理、使用默认值或备用逻辑等
什么是 NaN?
NaN(Not a Number)在 JavaScript 中表示一个无效的数值。它是一个特殊的数值,表示某个值无法作为数字进行解读。
NaN 是如何产生的?
以下是一些常见的导致 NaN 产生的情况:
- 对非数值字符串进行数学运算,例如:
"hello" + 1
- 对空值或未定义值进行数学运算,例如:
undefined * 5
- 尝试将非数字转换为数字,例如:
parseInt("foo")
- 对一个数字进行无效的操作,例如:
Math.sqrt(-1)
识别 NaN
您可以使用 isNaN()
函数来检查一个值是否是 NaN。该函数返回一个布尔值,指示该值是否为 NaN:
<code class="javascript">console.log(isNaN(NaN)); // true console.log(isNaN(123)); // false</code>
NaN 的特殊属性
NaN 具有以下特殊属性:
- NaN 不等于任何其他值,包括本身:
NaN !== NaN
- NaN 无法通过比较运算符(==、!=、>、=、
- NaN 是 JavaScript 中唯一的非有限(不是正无穷大或负无穷大)值
处理 NaN
当您遇到 NaN 时,可以采取以下步骤:
- 检查输入并确保所有值都是有效的数字
- 使用
isNaN()
函数识别和处理 NaN 值 - 使用默认值或备用逻辑来处理 NaN 值