为什么在JavaScript中使用typeof(null)=='object'?

时间:2014-07-10 07:12:15

标签: javascript

我刚才注意到JavaScript中的以下表达式为true

typeof (null) == 'object'

这看起来很奇怪,假设我有一个null值的变量,typeof为此变量返回object

我想知道为什么JavaScript中typeof (null)object

2 个答案:

答案 0 :(得分:1)

已经进行了辩论(例如参见this discussion),并且它经常被视为不太好,但它有一个基本原理:null代替值对象,它是你期望一个对象而没有对象的价值。

来自ECMAScript

  

null:表示故意缺少任何对象值的原始值。

NaN类型为"number"完全相同。

答案 1 :(得分:-1)

  

在JavaScript的第一个实现中,JavaScript值表示为类型标记和值。对象的类型标记为0. null表示为NULL指针(在大多数平台中为0x00)。因此,null为0作为类型标记,因此伪造类型的返回值

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