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

有大佬遇到过这个问题吗:typeof null 为什么返回的是object?

有大佬遇到过这个问题吗:typeof null 为什么返回的是object?

慕工程0101907 2019-08-21 18:29:23
null是空指针对象,那null是不是Object的实例呢vara=null;typeofa;//objectainstanceofObject//falsenull也不是Object的实例,那类型检测的时候为什么是'objec',是历史原因还是浏览器的兼容问题,不同的浏览器会显示不同的答案?
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

null不是一个空引用,而是一个原始值,参考ECMAScript5.1中文版4.3.11节;它只是期望此处将引用一个对象,注意是"期望",参考null-JavaScript.typeofnull结果是object,这是个历史遗留bug,参考typeof-JavaScript在ECMA6中,曾经有提案为历史平凡,将typenull的值纠正为null,但最后提案被拒了.理由是历史遗留代码太多,不想得罪人,不如继续将错就错当和事老,参考harmony:typeof_null[ESWiki]
查看完整回答
反对 回复 2019-08-21
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

null当然不是Object的实例。null是一个空的对象引用,既然是空的,就不存在任何引用。typeofa返回Object的原因,就是因为null表示空的对象引用。typeofa不存在浏览器兼容性.有个这样一种做法,如果你准备将对象赋给a,那么a最好初始化为null而不是undefined.
                            
查看完整回答
反对 回复 2019-08-21
  • 2 回答
  • 0 关注
  • 461 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号