type运算符为null返回值

时间:2015-04-16 16:06:01

标签: javascript

我发现了类型操作符返回值的奇怪行为。看看下面的代码:

null result

所以我使用typeof运算符获取 object 作为null的类型。这是与浏览器相关的错误还是预期的行为?对于我来说,typeof会为null值返回“object”听起来并不正常。我会期望null。我测试了铬。感谢

2 个答案:

答案 0 :(得分:1)

根据MDN,这是ECMAScript中的一个错误,应为null。

  

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

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

答案 1 :(得分:1)

这是the ES5 spec section 11.4.3处定义的预期行为:

  
      
  1. 根据表20返回由Type(val)确定的字符串。
  2.         

    ...

    Type of val   Result
    Null          "object"
    

永远不会定义typeof运算符为任何值返回'null',无论它是否实际为空。它会像你期望的那样处理undefined,但他们选择不特别处理null。