JavaScript中的NaN、undefined和null 的区别

NaN代表"Not a Number",它是一种特殊的数值,用于表示非数字值。当一个操作无法返回有效的数值时,通常会得到NaN作为结果。

let result = 10 / 'abc';
console.log(result); // 输出 NaN

需要注意的是,NaN与自身不相等,我们无法通过简单的比较操作符(如==或===)来检查一个值是否为NaN 

console.log(NaN == NaN); // 输出 false
console.log(NaN === NaN); // 输出 false

我们可以使用全局函数isNaN()来检查一个值是否为NaN。

console.log(isNaN(NaN)); // 输出 true

undefined表示一个变量已声明但未赋值的状态。当尝试访问一个尚未初始化的变量时,会返回undefined。

let x;
console.log(x);