null與undefined的區別?


古之立大事者,不惟有超世之才,亦必有堅忍不拔之志. ——北宋· 蘇 軾《晁錯論》

 

1、首先看一個判斷題:null和undefined 是否相等

    console.log(null==undefined)//true
    console.log(null===undefined)//false

觀察可以發現:null和undefined 兩者相等,但是當兩者做全等比較時,兩者又不等。

原因:null: Null類型,代表“空值”,代表一個空對象指針,使用typeof運算得到 “object”,所以你可以認為它是一個特殊的對象值。

          undefined: Undefined類型,當一個聲明了一個變量未初始化時,得到的就是undefined。

實際上,undefined值是派生自null值的,ECMAScript標准規定對二者進行相等性測試要返回true,

2、那到底什么時候是null,什么時候是undefined呢?

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

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

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

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

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

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

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

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


免責聲明!

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



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