常見的數據類型
原始值
- String
- Number
- Boolean
- null
- undefined
- 其它
引用值
- Function
- Array
- Object
- RegExp
- 其它
類型檢測
typeof
typeof 方法通常情況下可以幫助我們檢測出基本的數據類型
但有的時候檢測出來的結果卻不是我們想要的,比如下面這些情況,只能告訴我們是對象類型,但不能明確的告訴我們屬於那種對象(Array、Object、Date等)
這時候我沒應該怎麼辦呢?沒錯使用 instanceof 來進行判斷。具體如何使用等會再說,我們先來看這樣一個問題
null 明明是原始類型的值,但爲什麼檢測出來的結果卻是 object 呢
首先來看這樣一個問題,數據在計算機中都是以二進制的形式保存的,那麼 js 是如何存儲數據類型的
js 在底層存儲變量的時候,會在變量的機器碼的低位 1 - 3 位存儲其類型信息,所以 typeof 方法也只會看前 1 - 3 位
- 浮點數:000
- 整數:1
- 字符串:100
- 布爾:110
- null:全爲0
- undefined:−2^30 整數來表示
此時,就明白爲什麼 typeof null
的結果爲什麼爲 object 了,因爲前三位都是0,所以就會看成 object
instanceof
使用 instanceof 就可以幫助我們判斷出具體的數據類型