Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
null是JavaScript中的对象吗?_Javascript_Null - Fatal编程技术网

null是JavaScript中的对象吗?

null是JavaScript中的对象吗?,javascript,null,Javascript,Null,可能重复: 您好,我已经读过JavaScript中的null,但是我现在对null的标识感到非常困惑 众所周知,typeof(null)的计算结果为对象,因为,ECMA声明null是null类型 8.2 The Null Type The Null type has exactly one value, called null. 那么为什么人们总是说null是一个对象呢 有人说null是一个单例对象。这也是大家在JavaScript中看到null的方式吗?不,null是为数不多的

可能重复:

您好,我已经读过JavaScript中的null,但是我现在对
null
的标识感到非常困惑

众所周知,
typeof(null)
的计算结果为
对象
,因为,ECMA声明null是
null类型

   8.2 The Null Type
   The Null type has exactly one value, called null.
那么为什么人们总是说
null
是一个对象呢


有人说null是一个单例对象。这也是大家在JavaScript中看到null的方式吗?

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

Null表示没有对象。Undefined表示尚未分配,null表示已分配为nothing


Null不是一个真正的单例对象,因为取消引用它会导致错误
for(var x为null)
将给您一个错误。回想过去的日子;null是指针不指向对象时所具有的值。

null
不能被视为对象,因为它不能具有属性。它是一个表示原语的关键字,如
true
false

> true instanceof Object
false
> null instanceof Object
false

@卡里姆79是的,我读过这篇文章,把我的问题作为对一些答案的评论,但没有得到回应,所以我在这里提出了它。谢谢你用这句话回答了自己。null(一个表示自身的值——读作:“不是其他任何东西”——对于所有null,null===null)是null类型的唯一占用者。正如您所指出的,实际的“对象性”是有争议的,但null的特性使其成为一个主要的沉默点。您的链接“语言设计错误”引用了Douglas Crockford的文档-我(个人)不会建议您一字不差地接受他所说的一切。可变性与对象无关。请参阅EcmaScript 5中的Object.freeze,它允许创建不可变对象。EcmaScript 3中的本机对象也是对象,可以是不可变的。Null不是一个对象,因为它不能响应任何消息——没有属性或方法。这就是为什么(null instanceof type)对于所有类型都为false。@mikesamuel:从我的答案中删除了“冒犯”部分:)类对象可能是一个错误的术语,用于描述在尝试用作对象时如何临时装箱基元。
for(var x为null)
不会在许多浏览器上抛出,尽管它应该抛出,至少如ECMAScript的上所指定的那样(当值为
null
undefined
时,
ToObject
操作将抛出)。但是现在这已经改变了,如果表达式是
null
未定义的
,则语句只会结束(正常的语句完成)。很好,ECMA对HTML格式的规范。我一直在寻找它!:)