javascript null value - 它是一个对象

时间:2013-06-30 23:11:18

标签: javascript types

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

> typeof null
"object"
> null instanceof Object
false

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

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

1 个答案:

答案 0 :(得分:2)

这有历史原因:

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

  

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

     

针对ECMAScript提出了一项修正案(通过选择加入),但遭到拒绝。它会导致typeof null ==='null'。