- null
如果给一个全局变量赋值为null,相当于将这个变量的指针对象以及值清空;如果给对象的属性赋值为null,或者局部变量赋值为null,相当于给这个属性分配了一块空的内存,值为null,JS会回收全局变量为null的对象。
- undefined
如果给一个全局变量赋值为undefined,相当于将这个对象的值清空,但这个对象依旧存在;如果给对象的属性赋值为undefined,说明这个值为空值。
扩展:
声明了一个变量,但未对其初始化时,这个变量的值是undefined,它是JS基本类型之一。
var a;
console.log(a === undefined); //true
对于尚未声明过的变量,只能执行一项操作,即:使用typeof操作符检测其数据类型,使用其他的操作都会报错。
//b变量未定义
console.log(typeof b); //"undefined"
console.log(b === undefined); //报错
值null特指对象的值未设置,它是JS基本类型之一。
值null是一个字面量,它不像undefined是全局对象的一个属性。null是表示缺少的标识,指示变量未指向任何对象。
// func不存在,它从来没有被定义过或者初始化过:
func;
"ReferenceError: func is not defined"
// func现在已经是存在的,但是它没有类型或者值:
var func = null;
console.log(func); // null