深入理解typeof操作符

freefy發表於2018-08-07

typeof可以檢測資料的型別

typeof返回結果的其實是字串:可以通過以下測試出來

console.log( typeof(typeof(a))); // string

 typeof返回的資料型別有6種:

1.number—–數字型別的運算元typeof(123);

 NaN屬於number型別。雖然是非數,但是非數也是數字的一種。

2.string——–字串型別的運算元typeof(`123`);

3.boolean—–布林值如:typeof(true);

4.object——–物件,陣列,null,比如typeof(window),typeof(document),typeof(null);

其實null並不是一種物件,只是因為歷史遺留性的問題,null通常用來作為物件佔位符,所以被瀏覽器歸到了object裡面了。

5.function—–函式型別,比如typeof(eval),typeof(Date),typeof(Number),typeof(Object).

 

內建建構函式的分類
   ① ECMAScript核心語法自帶內建建構函式: 有一部分內建建構函式:Function、 Object、 Array、 String、 Number、 Boolean、 RegExp、 Error、 Date
   ② 宿主環境: 也會支援一部分建構函式  例如Image。

 

6.undefined–未定義的變數,函式或者undefined

 注意:typeof測試任何變數都不會報錯,未定義的變數會返回字串undefined

例題:

var a = typeof undefined == typeof NULL;
console.log(a); //true
// 因為javascript嚴格區分大小寫,這裡的NULL不等於null,這裡的NULL為undefined