这是一个历史遗留下来的 feature(or bug?),The history of “typeof null”
typeof null→"object" ?
在JavaScript中,typeof null是'object',它不正确地表明null是一个对象,这是一个错误,不幸的是无法修复,因为它会破坏现有的代码。我们来探讨这个bug的历史。
《你不知道的Javascript》译者:
不知道大家有没有理解,我举个非常不恰当的例子。
假设所有的Javascript对象都是16位的,也就是有16个0或1组成的序列。
基于上面的假设,我们猜想:
使用typeof检测[]和null的结果为:
注意:
为什么Array的前三位不是100?
这是因为二进制中的"前"一般来说代表的是低位,比如二进制00000011对应十进制数是3,它的前三位是011。