摘要: 本教程将介绍 JavaScript 的 NaN
,如何检查一个值是否为 NaN
,以及如何有效地处理 NaN
。
JavaScript NaN 简介
JavaScript 拥有 数字 类型,它允许你表示数字,包括整数和浮点数。JavaScript 数字有一个特殊的值叫做 NaN
,它代表非数字。
NaN
是 全局对象 的属性。全局对象在 Web 浏览器中是 window
对象
window.NaN
Code language: JavaScript (javascript)
在 Node.js 中是全局对象。
global.NaN
Code language: CSS (css)
NaN
的类型为 number
,如以下代码所示
console.log(typeof NaN); // number
Code language: JavaScript (javascript)
检查一个值是否为 NaN
JavaScript 提供了全局函数 isNaN()
,如果其参数为 NaN
,则返回 true
isNaN(valueToCheck)
Code language: JavaScript (javascript)
例如
const result = 100 + 0 / 0;
console.log(isNaN(result)); // true
Code language: JavaScript (javascript)
为什么要使用 NaN
JavaScript 使用 NaN
作为对数字进行失败操作的结果,包括
- 解析数字
- 使用
undefined
作为操作数 - 使用
NaN
作为操作数 - 使用不确定的形式
- 将无效参数传递给数学函数
操作返回 NaN
1) 解析数字
在 JavaScript 中,你可以将一个数字 字符串 转换为数字。例如
const input = '100';
const num = parseInt(input);
console.log(num); // 100
Code language: JavaScript (javascript)
如果 JavaScript 无法将字符串转换为数字,它将返回 NaN
。在这种情况下,NaN
表示解析失败。例如
const input = 'X100';
const num = parseInt(input);
console.log(num); // NaN
Code language: JavaScript (javascript)
使用 isNaN
函数验证解析结果是一个良好的做法
const input = 'X100';
const num = parseInt(input);
// set num to 0 if parsing failed
if (isNaN(num)) {
num = 0;
}
console.log(num); // 0
Code language: JavaScript (javascript)
在这个例子中,解析失败,因此它返回了 NaN
。条件 isNaN(num)
为真,因此数字被赋值为 0
。
2) 使用 undefined 作为操作数
使用 undefined
作为操作数的表达式将返回 NaN
。例如
console.log(undefined * 2); // NaN
Code language: JavaScript (javascript)
在实践中,你将经常处理 undefined。例如,当你访问 HTML 元素的非存在属性并将其用于计算时。
避免在计算中使用 undefined
是一个良好的做法。
3) 使用 NaN 作为操作数
当表达式包含 NaN 时,它始终返回 NaN。例如
const result = 10 + 1 / NaN;
console.log(result); // NaN
Code language: JavaScript (javascript)
4) 使用不确定的形式
当算术运算处于不确定的形式时,它将返回 NaN。例如
const result = 10 + 0 / 0;
console.log(result); // NaN
Code language: JavaScript (javascript)
5) 使用数学函数的无效参数
当数学函数接收无效参数时,它将返回 NaN。例如
const result = Math.sqrt(-1);
console.log(result); // NaN
Code language: JavaScript (javascript)
在这个例子中,Math.sqrt()
返回一个数字的平方根。由于它只接受非负数,因此传递 -1 将导致 NaN
。
总结
- NaN 代表非数字。它是全局对象的
NaN
属性的特殊值。 - NaN 表示对数字的失败操作。
- 使用
isNaN()
函数检查一个值是否为NaN
。
本教程对您有帮助吗?