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