JavaScript中 null和undefind有什麼異同?

相同點:

1.都會轉成falsejavascript

if(!undefined){
	console.log('undefined')
}
if(!null){
	console.log('null')
}
//輸出 undefined null

2.並且使用相等來判斷,是相等的html

console.log(undefined == null)//true
console.log(undefined === null) //false

3.它們都是數據類型,並且它們都只有一個值。java

不一樣點:

感謝阮一峯老師的解答:http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html函數

1.null是一個表示"無"的對象,轉爲數值時爲0;undefined是一個表示"無"的原始值,轉爲數值時爲NaN。spa

Number(null); //0
 
5+null; //5

Number(undefined);// NaN

5 + undefined;// NaN

 

使用場合:

null的使用場合:

  1. 給對象賦值的時候使用。
  2. 做爲函數的參數,表示該函數的參數不是對象。
  3. 做爲對象原型鏈的終點。
Object.getPrototypeOf(Object.prototype)// null

undefined的使用場合:

  1. 變量被聲明瞭,但沒有賦值時,就等於undefined。prototype

  2. 調用函數時,應該提供的參數沒有提供,該參數等於undefined。
  3. 對象沒有賦值的屬性,該屬性的值爲undefined。
  4. 函數沒有返回值時,默認返回undefined。
相關文章
相關標籤/搜索