为了账号安全,请及时绑定邮箱和手机立即绑定

typeof null 为什么返回的是object?

typeof null 为什么返回的是object?

九州编程 2019-02-04 00:07:20
null是空指针对象,那null是不是Object的实例呢var a = null;typeof a; // objecta instanceof Object // falsenull也不是Object的实例,那类型检测的时候为什么是'objec',是历史原因还是浏览器的兼容问题,不同的浏览器会显示不同的答案?关注 | 3收藏
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

这种问题问之前为什么不搜一下先呢?答案一大把..

具体可以参考知乎这位博主的回答

  1. null不是一个空引用, 而是一个原始值, 参考ECMAScript5.1中文版 4.3.11节; 它只是期望此处将引用一个对象, 注意是"期望", 参考 null - JavaScript.

  2. typeof null结果是object, 这是个历史遗留bug, 参考 typeof - JavaScript

  3. 在ECMA6中, 曾经有提案为历史平凡, 将type null的值纠正为null, 但最后提案被拒了. 理由是历史遗留代码太多, 不想得罪人, 不如继续将错就错当和事老, 参考 harmony:typeof_null [ES Wiki]


查看完整回答
反对 回复 2019-02-04
  • 1 回答
  • 0 关注
  • 499 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信