數據類型總結——null和undefined
原文:
簡書原文: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