page contents

typeof null 的结果是什么,为什么?

轩辕小不懂 发布于 2021-12-15 14:09
阅读 552
收藏 0
分类:WEB前端开发
2655
Nen
Nen
- 程序员

typeof null 的结果是Object。

在 JavaScript 第一个版本中,所有值都存储在 32 位的单元中,每个单元包含一个小的 类型标签(1-3 bits) 以及当前要存储值的真实数据。类型标签

存储在每个单元的低位中,共有五种数据类型:

如果最低位是 1,则类型标签标志位的长度只有一位;如果最低位是 0,则类型标签标志位的长度占三位,为存储其他四种数据类型提供了额外两

个 bit 的长度。

有两种特殊数据类型:

undefined的值是 (-2)30(一个超出整数范围的数字);

null 的值是机器码 NULL 指针(null 指针的值全是 0)

那也就是说null的类型标签也是000,和Object的类型标签一样,所以会被判定为Object。

JavaScrip面试题

000: object - 当前存储的数据指向一个对象。

 1: int - 当前存储的数据是一个 31 位的有符号整数。

010: double - 当前存储的数据指向一个双精度的浮点数。

100: string - 当前存储的数据指向一个字符串。

110: boolean - 当前存储的数据是布尔值。

请先 登录 后评论