[JavaScript]JavaScript中undefined和null的區別

JavaScript中undefined和null的區別

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

  1. undefinednull在if語句中,都會被自動轉爲false,相等運算符直接報告兩者相等。
!null==!undefined==true
  1. null表示”沒有對象”,即該處不應該有值。典型用法是:
    (1) 作爲函數的參數,表示該函數的參數不是對象。

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

    Object.getPrototypeOf(Object.prototype) // null

  2. 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章