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(上卷)》