Является ли null объектом в JavaScript?

Возможный дубликат:
Нулевой объект в javascript

Привет, я прочитал этот поток об ошибке в JavaScript, но я очень смущен об идентичности null.

Как известно, typeof(null) оценивает object из-за ошибки дизайна языка, а ECMA заявляет, что значение null равно The Null Type.

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

Итак, почему люди продолжают говорить, что null - это объект?

Кто-то сказал, что null - это одноэлементный объект. Это так, как все видят нуль, как и в JavaScript?

Ответ 1

Нуль - это отсутствие объекта. Undefined означает, что он еще не назначен, а null означает, что ему присвоено значение.

Null не является одиночным объектом, потому что разыменование его приведет к ошибке; for (var x in null) даст вам сообщение об ошибке. Вспомните дни указателя; null было значением, которое указатель имел, когда он не указывал на объект.

Ответ 2

Нет, null - один из немногих примитивных типов (другие - числа, строки, булевы и undefined). Все остальное - объект, включая функции, массивы и регулярные выражения. Числа, строки и булевы часто называются "объектноподобными", потому что у них есть методы, но они неизменяемы. Объекты с другой стороны изменяемы.

Ответ 3

null нельзя рассматривать как объект, поскольку он не может иметь свойств. Это ключевое слово, представляющее примитив, например true и false.

> true instanceof Object
false
> null instanceof Object
false