📌  相关文章
📜  undefined 和 null 的区别? (1)

📅  最后修改于: 2023-12-03 15:05:43.073000             🧑  作者: Mango

undefined 和 null 的区别

undefined

undefined 是一个表示一个没有被赋值的变量的值。例如:

var a;
console.log(a); // undefined

可以看到,当变量 a 被声明后但没有被赋值时,它的值为 undefined。此外,在函数中声明但没有给定返回值时,返回值也是 undefined

function foo() {}
console.log(foo()); // undefined
null

null 则是一个表示空值或者对象指针为空的特殊对象。它被用来表示一个不存在的对象或者变量。例如:

var a = null;
console.log(a); // null

可以看到,当显式地给变量 a 赋值为 null 时,它的值为 null

区别

虽然 undefinednull 看起来非常相似,但它们之间还是有一些区别的。

转换为布尔值的结果

undefinednull 转换为布尔值时,它们的值分别为 falsefalse。例如:

console.log(Boolean(undefined)); // false
console.log(Boolean(null)); // false
相等性判断

undefinednull 不仅在用法上有所不同,在相等性判断上也是有差别的。在使用 == 进行比较时,它们是相等的,但在使用 === 时,它们是不相等的。例如:

console.log(undefined == null); // true
console.log(undefined === null); // false

因此,在使用 === 比较值时,应该使用 null 来表示空值或者没有指向对象的指针,而不是 undefined

总结
  • undefined 是一个表示一个没有被赋值的变量的值,或者函数中没有给定返回值时的返回值。
  • null 则是一个表示空值或者对象指针为空的特殊对象,用来表示一个不存在的对象或者变量。
  • undefinednull 在转换为布尔值时的结果为 false
  • 在使用 === 比较时,nullundefined 是不相等的。