NaN
(Not-A-Number,非数字)是 JavaScript 中的一种特殊值,表示一个不是合法数字的值。以下是对 NaN
的详细解释:
NaN
是一个全局属性,表示不是一个数字的值。NaN
的数学运算结果都是 NaN
。NaN
不等于任何值,包括它自身(即 NaN !== NaN
)。NaN
的情况parseInt()
或 parseFloat()
函数解析非数字字符串时。Math.sqrt(-1)
会返回 NaN
,因为 -1 没有实数平方根。NaN
由于 NaN
不等于任何值,包括它自身,因此不能使用普通的比较运算符来检查一个值是否为 NaN
。相反,应该使用全局函数 isNaN()
或 Number.isNaN()
。
isNaN(value)
:如果 value
是 NaN
或者可以转换为 NaN
的值,则返回 true
。Number.isNaN(value)
:只有当 value
严格等于 NaN
时,才返回 true
。// 非法数学运算产生 NaN
let result1 = 0 / 0; // NaN
console.log(result1); // 输出: NaN
// 无法转换为数字的值
let str = "hello";
let num = parseInt(str); // NaN
console.log(num); // 输出: NaN
// 使用 isNaN() 检查 NaN
console.log(isNaN(NaN)); // 输出: true
console.log(isNaN("hello")); // 输出: true,因为 "hello" 可以转换为 NaN
// 使用 Number.isNaN() 检查 NaN
console.log(Number.isNaN(NaN)); // 输出: true
console.log(Number.isNaN("hello")); // 输出: false,因为 "hello" 不严格等于 NaN
NaN
的问题NaN
的代码周围添加错误处理逻辑,以便在出现问题时采取适当的措施。总之,NaN
在 JavaScript 中表示一个不是合法数字的值,通常是由于非法的数学运算或无法转换为数字的值产生的。要解决与 NaN
相关的问题,需要确保输入值的有效性、使用适当的错误处理,并避免非法运算。
领取专属 10元无门槛券
手把手带您无忧上云