null和undefined區別(轉)

目前,null和undefined基本是同義的,只有一些細微的差異。javascript

null表示"沒有對象",即該處不該該有值。典型用法是:java

(1) 做爲函數的參數,表示該函數的參數不是對象。函數

(2) 做爲對象原型鏈的終點。spa

Object.getPrototypeOf(Object.prototype) // null 

undefined表示"缺乏值",就是此處應該有一個值,可是尚未定義。典型用法是:prototype

(1)變量被聲明瞭,但沒有賦值時,就等於undefined。code

(2) 調用函數時,應該提供的參數沒有提供,該參數等於undefined。對象

(3)對象沒有賦值的屬性,該屬性的值爲undefined。token

(4)函數沒有返回值時,默認返回undefined。ip

(5)變量值位於後面加載時,默認返回undefined。原型鏈

var i; i // undefined function f(x){console.log(x)} f() // undefined var o = new Object(); o.p // undefined var x = f(); x // undefinedalert(a);var a=1;
相關文章
相關標籤/搜索