在JavaScript中是null对象吗?

时间:2010-09-07 21:35:41

标签: javascript null

  

可能重复:
  Null object in javascript

嗨,我在JavaScript中读过有关null的this thread,但我现在对null的身份感到非常困惑。

众所周知typeof(null)由于the language design error而评估为object,而ECMA声明null为The Null Type

   8.2 The Null Type
   The Null type has exactly one value, called null.

那么为什么人们一直说null是一个对象呢?

有人说null是一个单例对象。这就是每个人如何在JavaScript中看到null吗?

3 个答案:

答案 0 :(得分:10)

Null是没有物体。未定义表示尚未分配,null表示已将其指定为空。

Null实际上不是一个单例对象,因为取消引用它会导致错误; for (var x in null)会给您一个错误。回想一下指针的日子; null是指针未指向对象时指针的值。

答案 1 :(得分:7)

不,null是为数不多的原始类型之一(其他类型是数字,字符串,布尔值和未定义)。其他所有东西都是一个对象,包括函数,数组和正则表达式。数字,字符串和布尔值通常被称为“类似对象”,因为它们有方法,但它们是不可变的。 另一方面,对象是可变的。

答案 2 :(得分:1)

null不能被视为对象,因为它不具有属性。它是表示基元的关键字,如truefalse

> true instanceof Object
false
> null instanceof Object
false