Null和Undefined类型都只有唯一的特殊值,即null和undefined。不过null是关键字而undefined不是。
JavaScript把两者定义为相等的,如下代码可以验证:
- alert(null == undefined);//会弹出true。
尽管这两个值相等,但是它们的含义不同。undefined表示更深层次的“空值”,它是变量的一种取值,表明变量没有初始化。null 则用于表示尚未存在的对象。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。所以:
- alert(null === undefined);//会弹出false
你也可以认为undefined是表示系统级的、出乎意料的或类似错误的值的“空值”;而null表示程序级的、意料之中的值的“空值”。如果你想吧两者赋值给变量或者属性等,最好的选择是null