在JavaScript 中为什么 typeof null 的结果是 object?

这是一个历史遗留下来的 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。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。