版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
使用typeof null
得到的null是object
.所以,它是一个对象???
先看一个小栗子.
前提:引用W3school
Boolean() 函数
当要转换的值是至少有一个字符的字符串、非 0 数字或对象时,Boolean() 函数将返回 true。
提问:
既然typeof null
返回的是object
,而且Boolean()
转换对象会得到true
,然而Boolean(null)
却是false
呢?
W3school解释:
知乎解释:
- null不是一个空引用, 而是一个原始值; 它只是期望此处将引用一个对象, 注意是"期望", typeof null结果是object, 这是个历史遗留bug. 在ECMA6中, 曾经有提案为历史平反, 将type null的值纠正为null, 但最后提案被拒了. 理由是历史遗留代码太多, 不想得罪人, 不如继续将错就错当和事老.
总结:null是一个“期望”对象。