Как уже отмечалось, спецификация говорит так. Но поскольку реализация JavaScript предшествует написанию спецификации ECMAScript, и спецификация была осторожна, чтобы не исправить недостатки первоначальной реализации, остается вопрос о том, почему это было сделано в первую очередь. Дуглас Крокфорд называет это ошибкой . Киро Риск считает, что это сорта имеет смысл :
. Поводом для этого является то, что
blockquote>null
, в отличие отundefined
, был (и до сих пор) используется, когда появляются объекты. Другими словами,null
часто используется для обозначения пустой ссылки на объект. Когда Брендан Эих создал JavaScript, он следовал той же парадигме, и имело смысл (возможно) вернуть «объект». Фактически, спецификация ECMAScript определяетnull
как примитивное значение, которое представляет намеренное отсутствие какого-либо значения объекта (ECMA-262, 11.4.11).