NaN 是 JavaScript 中的特殊值,表示“不是一个数字”(Not-a-Number)。它是一个特殊的数值类型,用于表示不能产生有效数字结果的操作或值。例如,将非数字字符串转换为数字、0 除以 0 等操作会返回 NaN。
要检查一个值是否为 NaN,可以使用 isNaN() 函数。不过需要注意,isNaN() 在判断值是否是 NaN 时会尝试先将值转换为数字,如果能转换为数字,会返回 false,否则返回 true。有时候这个行为可能不符合预期,比如对于空字符串或其他不能转换为数字的非 NaN 值也会返回 true。
const value = 10 / 'abc'; // 将非数字字符串转换为数字,结果为 NaN
// 检查值是否为 NaN
if (isNaN(value)) {
console.log('The value is NaN.');
} else {
console.log('The value is a number.');
}
另一个更可靠的方式是使用 Number.isNaN() 方法,它不会尝试将参数转换为数字,只有在参数严格等于 NaN 时才会返回 true。
const value = 10 / 'abc'; // 将非数字字符串转换为数字,结果为 NaN
// 检查值是否为 NaN
if (Number.isNaN(value)) {
console.log('The value is NaN.');
} else {
console.log('The value is a number.');
}
这种方式更加精确地检查一个值是否是 NaN。
Was this helpful?
0 / 0