测试代码:
let a = undefined;
console.log(a == undefined,a === undefined,a==null, a===null);
let b = null;
console.log(b == undefined,b === undefined,b==null, b===null);
结果:
true true true false
true false true true
总结:
判断的时候如果用两个=,undefined和null没有区别;
如果用三个=,undefined和null是不一样的;
null表示"没有对象",即该处不应该有值,如:
Object.getPrototypeOf(Object.prototype)
// 为null
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义,常见场景如下:
(1)变量被声明但没有赋值时,就等于undefined;
(2) 调用函数时参数没有提供,该参数等于undefined;
(3)对象没有赋值的属性,该属性的值为undefined;
(4)函数没有返回值时,默认返回undefined。