嗨,我在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吗?
答案 0 :(得分:10)
Null是没有物体。未定义表示尚未分配,null表示已将其指定为空。
Null实际上不是一个单例对象,因为取消引用它会导致错误; for (var x in null)
会给您一个错误。回想一下指针的日子; null是指针未指向对象时指针的值。
答案 1 :(得分:7)
不,null是为数不多的原始类型之一(其他类型是数字,字符串,布尔值和未定义)。其他所有东西都是一个对象,包括函数,数组和正则表达式。数字,字符串和布尔值通常被称为“类似对象”,因为它们有方法,但它们是不可变的。 另一方面,对象是可变的。
答案 2 :(得分:1)
null
不能被视为对象,因为它不具有属性。它是表示基元的关键字,如true
和false
。
> true instanceof Object
false
> null instanceof Object
false