以下内容摘录自阮一峰的《语法概述 -- JavaScript 标准参考教程(alpha)》章节『5.null和undefined』,以做备忘。
null与undefined都可以表示“没有”,含义非常相似。目前null和undefined基本是同义的,只有一些细微的差别。
在if语句中,它们都会被自动转为false,null == undefined
返回true
。
对于null和undefined,可以大致可以像下面这样理解。
null表示空值,即该处的值现在为空。典型用法是:
作为函数的参数,表示该函数的参数是一个没有任何内容的对象。
作为对象原型链的终点。
undefined表示不存在值,就是此处目前不存在任何值。典型用法是:
变量被声明了,但没有赋值时,就等于undefined。
调用函数时,应该提供的参数没有提供,该参数等于undefined。
对象没有赋值的属性,该属性的值为undefined。
函数没有返回值时,默认返回undefined。
在JavaScript里,条件判断语句中,下面六个值被转为false,其他值都视为true。
undefined
null
false
0
NaN
""(空字符串)
需要特别注意的是,空数组([]
)和空对象({}
)对应的布尔值,都是true。
作者: 阮一峰
来源: http://javascript.ruanyifeng.com/grammar/basic.html#toc20