数据类型 :
基本数据类型:Number、String、Boolean、null、undefined
引用数据类型:Function、Object、Array
区别 :
undefined:声明变量但未对其加以初始化时,这个变量的值就是undefined。
null:定义了,但是赋的值是空的。
typeof undefined // "undefined"
undefined :是一个表示"无"的原始值或者说表示"缺少值",就是此处应该有一个值,但还没有定义。当尝试读取时会返回 undefined
例如变量被声明了,但没有赋值时,就等于 undefined
typeof null //"object"
null : 是一个对象(空对象, 没有任何属性和方法)
例如作为函数的参数,表示该函数的参数不是对象
注意:
在验证 null 时,一定要使用===,因为 ==无法分别 null 和 undefined undefined 表示"缺少值",就是此处应该有一个值,但是还没有定义。
undefined典型用法是:
1、变量被声明了,但没有赋值时,就等于 undefined
2、调用函数时,应该提供的参数没有提供,该参数等于 undefined
3、对象没有赋值的属性,该属性的值为 undefined
4、函数没有返回值时,默认返回 undefined
null 表示"没有对象",即该处不应该有值。典型用法是:
1、作为函数的参数,表示该函数的参数不是对象
2、作为对象原型链的终点
a:声明但未定义(undefined)
b: 声明且定义为null
c: 未声明(c is not defined)
let a;
console.log(a);
let b = null;
console.log(b);
console.log(c);
ECMA 标准要求 null 和 undefined 等值判断返回 true
null == undefined // true
null === undefined // false