javascript空值-它是一个对象吗

javascript null value - is it an object

本文关键字:一个对象 空值 javascript      更新时间:2023-09-26

我在分析javascript数据类型时发现了一些非常奇怪的东西:

> typeof null
"object"
> null instanceof Object
false

目前我不知道该怎么解释。我认为所有有typeof === "object"的东西在其原型链中都会有Object.prototype。如果null不是object,那么为什么typeof会返回呢?

PS有人已经给我写了欢迎来到javascript的古怪世界;)

这有历史原因:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof#null

typeof null==='对象';//这是从JavaScript开始的在JavaScript的第一个实现中,JavaScript值表示为类型标记和值。对象的类型标记为0。null被表示为null指针(0x00是大多数平台)。因此,null的类型标记为0,因此返回值为伪typeof。(需要参考)

有人提议(通过选择加入)对ECMAScript进行修复,但被拒绝了。它会导致typeof null=="null"。