首页前端开发正文

为什么JavaScript里typeof(null)的值是object?

朱绪2017-10-312818JavaScript

在js中,typeof null的结果为什么是object?不是应该为null吗?

纳尼

其实,结果之所以是object,这是个历史遗留的bug。

第一版的JavaScript是用32位来存储值的,且通过值的低1位或3位来识别类型。

①1:整型(int)

②000:引用类型(object)

③010:双精度浮点型(double)

④100:字符串(string)

⑤110:布尔型(boolean)

null的二进制表示是全0,自然低三位是000,因此执行typeof的时候会返回object。