typeof null 为什么输出 object

typeof null 为什么输出 object;为什么 null instanceof object 输出false

typeof null 为什么输出 object

到目前为止,JavaScript 总共出了八种数据类型:undefined、string、symbol、null、number、boolean、bigInt、object

除了 null,typeof 操作符对于以上的都能准确输出,甚至还能输出具体的 'function'

对于这个问题,可以追溯到 JavaScript 的第一个版本。

它的设计是把数据存储在 32 位的二进制存储单元中。而这 32 位又划分为:实际数据+类型标签(位于低三位,即从低位开始的三位)

  • 当低三位为 000 时,被typeof 判断为 'object'

  • 当低三位为 001 时,被typeof 判断为 'number'(整数)

  • 当低三位为 010 时,被typeof 判断为 'number'(浮点数)

  • 当低三位为 100 时,被typeof 判断为 'string'

  • 当低三位为 110 时,被typeof 判断为 'boolean'

为什么 null instanceof object 输出false

答:因为null 并不是 Object 的实例

参考文章:

https://blog.51cto.com/u_15182950/2736166

https://2ality.com/2013/10/typeof-null.html

https://v8.dev/blog/react-cliff

posted @   朱在春  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2021-07-30 希尔排序
点击右上角即可分享
微信分享提示