JavaScript基础:typeof null 为什么返回”object”

说到这个问题,其实俺跟绝大多数同学是一样的,比较奇怪这个会返回什么结果,其实结果并不重要,重要的是这个问题经常被拿过来当成面试题,但是这其实是语言本身的一个bug。

之前俺被问到这个问题好像答错了,当时比较心急,其实面试之前俺是看过这个问题的。出于学习的目的,今天俺就大家一起来学习一下这个小知识点。

null本身实际上是基本类型,但是Javascript在存储的时候,会将不同的对象在底层存储都使用二进制的方式存储,在Javascript中如果二进制的前三位都为0的话就会被判断为object,null的二进制存储表示形式为全是0,自然前三位也是0,因此执行typeof时会返回”object”。

不信的同学可以在控制台执行以下代码试试看哦:

console.log(typeof null)

控制台输出会以下结果:

object

这个坑大家学会了没?继续努力~

(0)
上一篇 2019年3月30日 下午3:37
下一篇 2019年3月31日 下午2:02

相关推荐

发表回复

登录后才能评论