typeof null 为什么返回的是object?

null是空指针对象,那null是不是Object的实例呢

var a = null;typeof a; // objecta instanceof Object // false

null也不是Object的实例,那类型检测的时候为什么是'objec',是历史原因还是浏览器的兼容问题,不同的浏览器会显示不同的答案?



九州编程
浏览 500回答 1
1回答

千巷猫影

这种问题问之前为什么不搜一下先呢?答案一大把..具体可以参考知乎这位博主的回答:null不是一个空引用, 而是一个原始值, 参考ECMAScript5.1中文版 4.3.11节; 它只是期望此处将引用一个对象, 注意是"期望", 参考 null - JavaScript.typeof null结果是object, 这是个历史遗留bug, 参考 typeof - JavaScript在ECMA6中, 曾经有提案为历史平凡, 将type null的值纠正为null, 但最后提案被拒了. 理由是历史遗留代码太多, 不想得罪人, 不如继续将错就错当和事老, 参考 harmony:typeof_null [ES Wiki]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript