一、定义上
undefined 表示已经声明但是未赋值的变量,是javascript自动分配的默认值。
let x; // x 未赋值
console.log(x);// 输出 undefined
null 表示一个明确的“空值”和"无对象",通常需要开发者手动赋值。
let y = null; // y 被赋值为 null
console.log(y); // 输出 y
二、类型上
undefined 是undefined类型的
console.log(typeof undefined);
null 是object类型
console.log(typeof null); //输出 object
三、使用场景上
undefined 通常表示变量未初始化,或者函数无返回值
let a; //未初始化
console.log(a); //undefined
function test () {} //
console.log(test()); //undefined
null 表示“空”或“无值”
let b = null; // 明确赋值为空
console.log(b); // null
四、比较上
使用 == 时,undefined 和 null 是相等的
console.log(null == undefined); // true
使用 === 时,undefined 和 null不相等 ,因为它们类型不同
console.log(null === undefined); // false