JavaScript 中的 null 和 undefined 有什么区别?它们各自的使用场景是什么?
核心答案
undefined 表示"未定义",是变量声明后但未赋值时的默认值,代表系统级别的、意料之外的空值。
null 表示"空值",是一个被显式赋予的值,代表程序级别的、意料之中的空值。
| 特性 | undefined | null |
|---|---|---|
| 含义 | 未定义、缺失 | 空、无 |
| 来源 | 系统自动赋予 | 程序员主动赋值 |
| typeof | "undefined" | "object" (历史 bug) |
| 转为数字 | NaN | 0 |
深入解析
1. 产生 undefined 的场景
// 1. 变量声明未赋值
let a;
console.log(a); // undefined
// 2. 访问对象不存在的属性
let obj = {};
console.log(obj.name); // undefined
// 3. 函数没有返回值
function fn() {}
console.log(fn()); // undefined
// 4. 函数参数未传递
function greet(name) {
console.log(name); // undefined
}
greet();
// 5. 数组空位
let arr = [1, , ];
.(arr[]);

