js數據類型如何檢測

常見的數據類型

原始值

  • 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 就可以幫助我們判斷出具體的數據類型
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章