在JavaScript中,null
和 undefined
幾乎相等
在 if
語句中 null
和 undefined
都會轉爲false兩者用相等運算符比較也是相等
console.log(null==undefined); //true 因爲兩者都默認轉換成了false
console.log(typeof undefined); //"undefined"
console.log(typeof null); //"object"
console.log(null===undefined); //false "==="表示絕對相等,null和undefined類型是不一樣的,所以輸出“false”
null
和 undefined
基本同義,二者又有什麼區別呢?
null
表示沒有對象,即該處不應該有值
1) 作爲函數的參數,表示該函數的參數不是對象
2) 作爲對象原型鏈的終點
undefined
表示缺少值,即此處應該有值,但沒有定義
1)定義了形參,沒有傳實參,顯示undefined
2)對象屬性名不存在時,顯示undefined
3)函數沒有寫返回值,即沒有寫return,拿到的是undefined
4)寫了return,但沒有賦值,拿到的是undefined
null和undefined轉換成number數據類型
null
默認轉成 0
undefined
默認轉成 NaN