js中的undefined 和null


undefined是基本數據類型 表示未定義 缺少的意思 

null是引用數據類型  是對象 表示空對象  

undefined是從null派生出來的  所以undefined==null  true 

JavaScript的最初版本是這樣區分的:null是一個表示"無"的對象,轉為數值時為0;undefined是一個表示"無"的原始值,轉為數值時為NaN。

即 Number(null) 0    Number(undefined) NaN

但是,上面這樣的區分,在實踐中很快就被證明不可行。目前,null和undefined基本是同義的,只有一些細微的差別。

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

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

(2) 作為對象原型鏈的終點。


Object.getPrototypeOf(Object.prototype) // null 

undefined表示"缺少值",就是此處應該有一個值,但是還沒有定義。典型用法是:

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

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

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

(4)函數沒有返回值時,默認返回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 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM