JavaScript中唯一不等于自身的值是什么?
NaN
(非数字)是JavaScript中唯一一个在与任何比较运算符进行比较时不等于自身的值。NaN
通常是无意义或无效的数学计算的结果,因此两个NaN
值被认为是不相等的是合理的。
const x = Math.sqrt(-1); // NaN
const y = 0 / 0; // NaN
x === y; // false
x === NaN; // false
Number.isNaN(x); // true
Number.isNaN(y); // true
isNaN(x); // true
isNan('hello'); // true
你可以使用Number.isNaN()
函数来检查NaN
值。请注意,这与原始的全局isNaN()
函数不同。它们的区别在于isNaN()
会强制将其参数转换为数字,而Number.isNaN()
则不会。这就是为什么在大多数情况下,Number.isNaN()
被认为更健壮和更可取的原因。