理解Null和Undefined

null == 0; // false
undefined == ""; // false
null == false; // false
undefined == false; // false
null == undefined; // true

尽管如此,和其余类似之处,但null和undefined并非等价的。每一个做为其独特的类型的惟一成员,undefined是Undefined类型和null是Null类型。使用全等操做符(===)比较这两个值,这要求类型和值都相等,下面证实这一点:数组

undefined === null; // false
在JavaScript这种动态的弱类型语言中,只会默认返回一个undefined值,而不是上升为一个错误。
任何声明变量时没有提供一个初始值,都会有一个为undefined的默认值:
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
})();
相关文章
相关标签/搜索