JavaScript中undefined和null的異同

JavaScript兩個表示”無”的值:undefined和null。我在平時只是null用的多一點,undefined只是在報錯中經常遇到。下面針對這兩個數據類型的異同做一下詳細的比較。

  • undefined和null在if語句中,都會被自動轉爲false,相等運算符直接報告兩者相等。

    !null==!undefined==true

  • null表示”沒有對象”,即該處不應該有值。典型用法是:
1) 作爲函數的參數,表示該函數的參數不是對象。

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

        Object.getPrototypeOf(Object.prototype)  // null
  • undefined表示”缺少值”,就是此處應該有一個值,但是還沒有定義。典型用法是:
1)變量被聲明瞭,但沒有賦值時,就等於undefined。

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

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

    (4)函數沒有返回值時,默認返回undefinedvar i;
        i // undefined

        function f(x){console.log(x)}
        f() // undefined

        var  o = new Object();
        o.p // undefined

        var x = f();
        x // undefined
發佈了29 篇原創文章 · 獲贊 78 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章