為什麼typeof null 的結果為 object

_冰點發表於2019-02-03

typeof 運算子對基本資料型別的運算:

typeof 'str' // 'string'
typeof NaN // 'number'
typeof 1 // 'number'
typeof true // 'boolean'
typeof undefined // 'undefined'
typeof Symbol() // 'symbol'
複製程式碼

null作為一個基本資料型別為什麼會被typeof運算子識別為object型別呢? 這是因為javascript中不同物件在底層都表示為二進位制,而javascript 中會把二進位制前三位都為0的判斷為object型別,而null的二進位制表示全都是0,自然前三位也是0,所以執行typeof時會返回'object。 ----引用自《你不知道的javascript(上卷)》

相關文章