1、首先看一個判斷題:null和undefined 是否相等
console.log(null==undefined)//true
console.log(null===undefined)//false
觀察可以發現:null和undefined 兩者相等,但是當兩者做全等比較時,兩者又不等。
原因:
null: object類型,代表“空值”,代表一個空對象指針,
undefined: undefined類型,
2、那到底什么時候是null,什么時候是undefined呢?
null表示"沒有對象",即該處不應該有值。典型用法是:
(1) 作為函數的參數,表示該函數的參數不是對象。
(2) 作為對象原型鏈的終點。
undefined表示"缺少值",就是此處應該有一個值,但是還沒有定義。典型用法是:
(1)變量被聲明了,但沒有賦值時,就等於undefined。 例如,
(2) 調用函數時,應該提供的參數沒有提供,該參數等於undefined。
(3)對象沒有賦值的屬性,該屬性的值為undefined。
(4)函數沒有返回值時或者return后面什么也沒有,返回undefined。