原始型別
typeof運算子、instanceof運算子、Object.prototype.toString方法
-
typeof
- 使用最廣泛
-
但不精確,比如
typeof null
輸出來的結果是object
而並非是null
還有兩種方法,後面會有介紹。
console.log(typeof "undefined");// undefined console.log(typeof null);// object(歷史問題) 複製程式碼
3.undefined 和 null的區別
undefined == null//true undefined === null//false Number(undefined)//NaN Number(null)//0 複製程式碼
undefined
:表示“缺少值”,意思就是此處原本應該有個值,在使用var
宣告一個變數但未對其加以初始化。
null
:表示“一個空物件指標”、“沒有物件”、“空值”,就是此處不應該有值;(typeof null)
得到的是object
,可以理解為一種特殊的物件值。
在ECMA-262第三版引入undefined,是為了正式區分空物件指標和未經初始化的變數。 如果定義的變數準備在將來用於儲存物件,那麼最好在該變數初始化為nul`而不是其他值(摘自高程3P24).