null == 0; // false undefined == ""; // false null == false; // false undefined == false; // false null == undefined; // true
尽管如此,和其余类似之处,但null和undefined并非等价的。每一个做为其独特的类型的惟一成员,undefined是Undefined类型和null是Null类型。使用全等操做符(===)比较这两个值,这要求类型和值都相等,下面证实这一点:数组
undefined === null; // false
var foo; // 默认值为 undefined
当试图访问一个不存在的对象属性或数组项时,返回一个undefined值:函数
var array = [1, 2, 3]; var foo = array.foo; // foo 属性不存在, 返回 undefined var item = array[5]; // 数组中没有索引为5的项,返回 undefined
若是省略了函数的返回语句,返回undefined:spa
var value = (function(){})(); // 返回 undefined
函数调用时未提供的值结果将为undefined参数值:code
(function(undefined){ // 参数是 undefined })();