內置類型
JavaScript有七種
的內置類型:
- 空值(null)
- 未定義(undefined)
- 布爾值(boolean)
- 數學(number)
- 字符串(string)
- 對象(object)
- 符號(symbol)
其中除了對象之外,其它六種統稱為基本類型
。
如何進行類型判斷
使用typeof
使用typeof
進行類型判斷的返回值是該類型的字符串值,返回值只能為"object"
、"number"
、"undefined"
、"string"
、"boolean"
、"symbol"
、"function"
其中一個。可以注意到的是,這些返回值跟JavaScript的內置類型不是一一進應的。
缺少了null
,而多了function
。
與內置類型一一對應的就不詳細說了。重點關注null
和function
。
對於null
比較特殊,這算一個JavaScript歷史悠久的一個Bug,是因為object
的底層實現中頭三位都是0,而null
的底層實現直接是全0,因此typeof
在判斷null
才會誤判為object
。
1 | console.log(typeof null); // object |
function
屬於object
的子類型,屬於一個特例吧。
1 | function a() {} |
對於其它object
的子類型,例如數組,都會直接返回object
1 | const a = [1, 2, 3]; |
其它的判斷方法還有instance of
、constructor
、Object.prototype.toString.cal
等方法,之後再詳細再說。
值和類型
JavaScript中的變量是沒有類型的。只有值才有類型,變量可以隨時持有任何類型的值。
1 | let a = 42; |