1.概述html
null和undefined屬於js中兩種不一樣的基本數據類型,均可以表示「沒有」,含義很是類似。將一個變量賦值爲undefined或null,老實說,語法效果幾乎沒區別。而且在if語句的判斷條件中,它們都會自動轉爲false,相等運算符(==)甚至直接報告二者相等函數
var a = null; var b = undefined; if (!a) { console.log('a is false'); }//a is false if (!b) { console.log('b is false'); }//b is false if (null == undefined) { console.log('null == undefined is true') }//null == undefined is true
null
是一個表示「空」的對象,轉爲數值時爲0;undefined是一個表示"此處無定義"的原始值,轉爲數值時爲NaN。spa
Number(null); // 0 null + 9; // 9 Number(undefined); // NaN undefined + 9; // NaN
2.用法和含義code
對於null和undefined,大體能夠像下面這樣理解。null表示空值,即該處的值如今爲空。調用函數時,某個參數未設置任何值,這時就能夠傳入null,表示該參數爲空。好比,某個函數接受引擎拋出的錯誤做爲參數,若是運行過程當中未出錯,那麼這個參數就會傳入null,表示未發生錯誤。undefined表示「未定義」,下面是返回undefined的典型場景。htm
// 變量聲明瞭,但沒有賦值 var i; i // undefined // 調用函數時,應該提供的參數沒有提供,該參數等於 undefined function f(x) { return x; } f() // undefined // 對象沒有賦值的屬性 var o = new Object(); o.p // undefined // 函數沒有返回值時,默認返回 undefined function f() {} f() // undefined
原文出處:https://www.cnblogs.com/gongming/p/11609339.html對象