undefined與null的區別

在大多數計算機語言中,NULL表示有且僅有一個表示"無"的值,而在js中,無的值有兩個:undefined和null。函數

類似處:prototype

  一、undefined和null在if語句中,都會被自動轉爲false對象

  二、相等運算符甚至直接報告二者相等原型鏈

區別:get

  一、null表示"沒有對象"   原型

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

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

      Object.getPrototypeOf(Object.prototype)// nullfunction

  二、undefined表示"缺乏值",就是此處應該有一個值,可是尚未定義。dva

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

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

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

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

    vari;i// undefinedfunctionf(x){console.log(x)}f()// undefinedvaro=newObject();o.p// undefinedvarx=f();x// undefined

相關文章
相關標籤/搜索