为什么JavaScript里面typeof(null)的值是"object"?
关注者
100被浏览
107,692登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏
typeof null 为"object", 原因是因为 不同的对象在底层都表示为二进制,在Javascript中二进制前三位都为0的话会被判断为Object类型,null的二进制表示全为0,自然前三位也是0,所以执行typeof时会返回"object"。
一个不恰当的例子,假设所有的Javascript对象都是16位的,也就是有16个0或1组成的序列,猜想如下:
Array: 1000100010001000
null: 0000000000000000
typeof [] →"object"
typeof null→"object"
因为Array和null的前三位都是000。为什么Array的前三位不是100?因为二进制中的“前”一般代表低位, 比如二进制00000011对应十进制数是3,它的前三位是011。