📅  最后修改于: 2023-12-03 15:05:43.073000             🧑  作者: Mango
undefined
是一个表示一个没有被赋值的变量的值。例如:
var a;
console.log(a); // undefined
可以看到,当变量 a
被声明后但没有被赋值时,它的值为 undefined
。此外,在函数中声明但没有给定返回值时,返回值也是 undefined
。
function foo() {}
console.log(foo()); // undefined
null
则是一个表示空值或者对象指针为空的特殊对象。它被用来表示一个不存在的对象或者变量。例如:
var a = null;
console.log(a); // null
可以看到,当显式地给变量 a
赋值为 null
时,它的值为 null
。
虽然 undefined
和 null
看起来非常相似,但它们之间还是有一些区别的。
将 undefined
和 null
转换为布尔值时,它们的值分别为 false
和 false
。例如:
console.log(Boolean(undefined)); // false
console.log(Boolean(null)); // false
undefined
和 null
不仅在用法上有所不同,在相等性判断上也是有差别的。在使用 ==
进行比较时,它们是相等的,但在使用 ===
时,它们是不相等的。例如:
console.log(undefined == null); // true
console.log(undefined === null); // false
因此,在使用 ===
比较值时,应该使用 null
来表示空值或者没有指向对象的指针,而不是 undefined
。
undefined
是一个表示一个没有被赋值的变量的值,或者函数中没有给定返回值时的返回值。null
则是一个表示空值或者对象指针为空的特殊对象,用来表示一个不存在的对象或者变量。undefined
和 null
在转换为布尔值时的结果为 false
。===
比较时,null
和 undefined
是不相等的。