null 與 undefined 的區別
阿新 • • 發佈:2018-12-09
一 定義
null 是 javascript 的關鍵字,表示一個特殊值,常用來描述"空值",typeof 運算返回"object",所以可以將 null 認為是一個特殊的物件值,含義是"非物件"。
undefined 是預定義的全域性變數,他的值就是"未定義", typeof 運算返回 "undefined"
typeof null; // "object"
typeof undefined; // "undefined"
二 轉義
轉換成 Boolean 時均為 false,轉換成 Number 時有所不同
!!(null); // false !!(undefined); // false Number(null); // 0 Number(undefined); // NaN null == undefined; //true null === undefined; //false
三 判定
isNull = function (obj) {
return obj === null;
}
isUndefined = function (obj) {
return obj === void 0;
}
四 用法
null 常用來定義一個空值
undefined 典型用法是:
- 變數被聲明瞭,但沒有賦值時,就等於 undefined。
var test;
console.log(test); //undefined
- 呼叫函式時,應該提供的引數沒有提供,該引數等於 undefined。
//類如jQuery最外層IIFE用法 //這裡是為確保undefined的值,因為es3中undefined可以賦值,es5才做了修正,變為只讀 (function( window, undefined) { })(window)
- 物件沒有賦值的屬性,該屬性的值為 undefined。
var test = {}
console.log(test.a); // undefined
- 函式沒有返回值時,預設返回 undefined。
function test(){}
test(); //undefined