null與undefined的區別

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

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

觀察能夠發現:null和undefined 二者相等,可是當二者作全等比較時,二者又不等。測試

緣由:null: Null類型,表明「空值」,表明一個空對象指針,使用typeof運算獲得 「object」,因此你能夠認爲它是一個特殊的對象值。指針

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

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

二、那到底何時是null,何時是undefined呢?blog

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

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

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

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

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

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

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

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

相關文章
相關標籤/搜索