typeof null爲什麼是 object

typeof 運算符對基本數據類型的運算:

typeof 'str' // 'string'
typeof NaN // 'number'
typeof 1 // 'number'
typeof true // 'boolean'
typeof undefined // 'undefined'
typeof Symbol() // 'symbol'
typeof null // 'object'

null作爲一個基本數據類型爲什麼會被typeof運算符識別爲object類型呢?
這個bug是第一版Javascript留下來的,javascript中不同對象在底層都表示爲二進制,而javascript 中會把二進制前三位都爲0的判斷爲object類型,而null的二進制表示全都是0,自然前三位也是0,所以執行typeof時會返回 ‘object’。
----引用自《你不知道的javascript(上卷)》

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