null
是基本数据类型之一,是一个JavaScript字面量,表示空对象指针。
这里有几个注意的地方:
- null是一个字面量,而不是全局对象的一x个属性,但undefined是其属性。
- 由于null表示一个空对象指针,表示没有对象,因此用typeof检测会返回“object”
undefined
是基本数据类型之一,可以代表不存在的属性或其他不存在的值,即“缺少值”:
- 变量被声明了,但没有赋值时,就等于undefined。
- 调用函数时,应该提供的参数没有提供,该参数等于undefined。
- 对象没有赋值的属性,该属性的值为undefined。
- 函数没有返回值时,默认返回undefined。
null与undefined的相同点
- 在if语句中,都会被自动转为false
- 二者用相等运算符判断是相等的
undefined == null
// true
但是二者和其他被转换为false的值进行相等比较,都会返回false
null==0; //false
undefined == "";//false
null == false; //false
undefined == false;//false
null与undefined的不同点
- typeof操作符返回类型不同
typeof null // object
typeof undefined // undefined
转换为数字:
null被转换为0;
undefined被转换为NaN。转换为字符串
null被转换为“null”;
undefined被转换为“undefined”用全等操作符,则二者并不相等
null===undefined; //false