typeof
typeof 可以返回一个表示数据类型的字符串,返回结果包括: number , boolean , string , symbol , object , undefined , function 7 种数据类型 ,但是不能判断 null 和 array(也属于 object)等
Array 属于 Object 我可以理解,为什么 null 也是呢?
这就涉及到了 typeoof 的设计原理了,他是通过判断底层类型的二进制
- null:所有机器码均为 0
- undefined:用 −2^30 整数来表示
- 000:对象
- 010:浮点数
- 100:字符串
- 110:布尔
- 1:整数
typeof 判断前三位都是 0 的就是对象,所以全是 0 的 Null 自然也被判断为 object 了