typeof 是一個一元運算,放在一個運算數之前,運算數可以是任意型別。它的傳回值是一個字串,該字串說明運算數的類型。
我需要說明一下:
typeof 運算子把類型資訊當作字串回傳。 typeof 傳回值有六種可能: "number," "string," "boolean," "object," "function," 和 "undefined."。 typeof 語法中的圓括號是可選項。
typeof是一個一元運算符,它傳回的結果總是字串,對不同的運算元,它會傳回不同的結果。
Typeof運算的特定規則如下:
一、對於數字類型的運算元而言, typeof 傳回的值是 number。比如說:typeof(1),傳回的值就是number。
上面是舉的常規數字,對於非常規的數字類型而言,其結果回傳的也是number。例如typeof(NaN),NaN在
JavaScript中代表的是特殊非數字值,雖然它本身就是一個數字類型。
在JavaScript中,特殊的數字類型還有幾種:
Infinity 表示無窮大特殊值NaN 特殊的非數字值Number.MAX_VALUE 可表示的最大數字Number.MIN_VALUE 可表示的最小數字(與零最接近) Number. NaN 特殊的非數字值Number.POSITIVE_INFINITY 表示正無窮大的特殊值Number.NEGATIVE_INFINITY 表示負無限大的特殊值
以上特殊類型,在用typeof進行運算進,其結果都將是number。
二、對於字串類型, typeof 傳回的值是 string。例如typeof("123")回傳的值是string。
三、對於布林類型, typeof 傳回的值是 boolean 。例如typeof(true)傳回的值是boolean。
四、對於物件、陣列、null 傳回的值是 object 。例如typeof(window),typeof(document),typeof(null)傳回的值都是object。
五、對於函數類型,傳回的值是 function。例如:typeof(eval),typeof(Date)回傳的值都是function。
六、如果運算數是沒有定義的(例如說不存在的變數、函數或undefined),將會回傳undefined。例如:typeof(sss)、typeof(undefined)都回傳undefined。