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]

沧海一幻觉
TA贡献1824条经验 获得超5个赞
null当然不是Object的实例。null是一个空的对象引用,既然是空的,就不存在任何引用。typeofa返回Object的原因,就是因为null表示空的对象引用。typeofa不存在浏览器兼容性.有个这样一种做法,如果你准备将对象赋给a,那么a最好初始化为null而不是undefined.
添加回答
举报
0/150
提交
取消