null和undefined區別

星空之火@田興發表於2020-10-26

相同性:

在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) 作為物件原型鏈的終點


Object.getPrototypeOf(Object.prototype)
// null

undefined表示缺少值,即此處應該有值,但沒有定義

1)定義了形參,沒有傳實參,顯示undefined

2)物件屬性名不存在時,顯示undefined

3)函式沒有寫返回值,即沒有寫return,拿到的是undefined

4)寫了return,但沒有賦值,拿到的是undefined


var i;
i // undefined

function f(x){console.log(x)}
f() // undefined

var  o = new Object();
o.p // undefined

var x = f();
x // undefined

相關文章