js里的null到底是什么?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_40686529/article/details/102561075

使用typeof null得到的null是object.所以,它是一个对象???
先看一个小栗子.
在这里插入图片描述
前提:引用W3school

Boolean() 函数
当要转换的值是至少有一个字符的字符串、非 0 数字或对象时,Boolean() 函数将返回 true。

在这里插入图片描述
提问
既然typeof null返回的是object,而且Boolean()转换对象会得到true,然而Boolean(null)却是false呢?

W3school解释:
在这里插入图片描述
知乎解释:

  1. null不是一个空引用, 而是一个原始值; 它只是期望此处将引用一个对象, 注意是"期望", typeof null结果是object, 这是个历史遗留bug. 在ECMA6中, 曾经有提案为历史平反, 将type null的值纠正为null, 但最后提案被拒了. 理由是历史遗留代码太多, 不想得罪人, 不如继续将错就错当和事老.

总结:null是一个“期望”对象。

猜你喜欢

转载自blog.csdn.net/qq_40686529/article/details/102561075
今日推荐