1. 程式人生 > >數據類型總結——null和undefined

數據類型總結——null和undefined

認識 而不是 www 內容 邏輯 做到 bject 直接 結果

原文:

  簡書原文:https://www.jianshu.com/p/c3e252efe848

大綱

  前言
  1、關於null
  2、關於undefined

前言

  數據類型是每一種語言都需要掌握的內容,掌握每一種數據類型的使用是掌握這門語言必不可少的。而我也對數據類型寫了一系列的博客,其中包含了對某一數據類型的概念的認識和理解以及常使用的方法。以下就是我對null類型和undefined類型的一些認識和理解,希望能對讀者有所幫助。

1、關於null

  1、Null類型只有一個特殊的值,那就是null,從邏輯的角度來看,null值表示一個空對象指針。
  2、如果定義的變量準備用來保存對象,那麽最好將該變量初始化為null而不是其他值。這樣一來,只要直接檢查null值就可以知道相應的變量是否已經保存了一個對象的引用。

if(car != null){
    //對car對象執行某些操作
}

  3、實際上,undefined值是派生自null值的,因此這兩者的相等性測試要返回true。

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

  4、盡管null和undefined是相等的,但是他們的用途是完全不一樣的。如前所述,無論什麽情況下都沒有必要把一個變量的值顯示的設置為undefined,可是同樣的情況卻不適用與null,話句話說,只要意在保存對象的變量還沒有真的保存對象,就應該明確的讓該變量保存null值,這樣做不僅可以體現null作為空對象的指針的慣例,同時也有助於進一步區分null和undefined。

2、關於undefined

  1、Undefined類型只有一個值,那就是undefined,使用var聲明變量但並未對其進行初始化時,就會默認對其賦值,即undefined。
  2、一般而言,不存在需要顯示的把一個變量的值設置為undefined的情況,因為編譯器會自動為其賦這個值。字面值undefined的主要目的是用於比較,引入這個值是為了將空對象指針與未經初始化的變量區分開來,即區分null和undefined。

var num1;
var num2 = null;
console.log(typeof num1);//undefined
console.log(typeof num2);//object
console.log(typeof numg);//undefined(需要註意的是未經定義的變量使用typeof得到的也是undefined)
console.log(num1)//undefined
console.log(num2)//null
console.log(numg)//“numg”未定義

  3、對未經聲明的和未初始化的變量執行typeof操作符都返回了undefined值,這個結果有其邏輯上的的合理性。因為這兩種變量從技術角度上來看有本質上的區別,但實際上無論哪種情況也不能執行真正的操作。
  4、即便未初始化的變量會被自動賦值undefined,但是顯示地初始化變量依然是明智的選擇。如果能做到這一點,那麽當typeof操作符返回undefined的時候,我們就知道被檢測的變量是還未聲明,而不是尚未初始化。

數據類型總結——null和undefined