Это [объект значение null] & [объект определен] еще предстоит реализовать?


Читая MDN здесь , я наткнулся на

Начиная с JavaScript 1.8.5 toString (), вызываемый при null возвращает [object Null], и undefined возвращает [объект Undefined], как определено в 5-ом Издание ECMAScript и последующие ошибки. См. раздел Использование toString to определение типа объекта.

Я пытался Object(null).toString() & Object(undefined).toString()

И оба вернулись "[object Object]"

Согласно спецификации , примитивные типы в JS являются неопределенными, нулевыми, булевыми, числовыми, или Струна.

Поэтому было бы правильно предположить, что на данный момент все браузеры еще не реализовали:

[object Undefined] & [object Null] ?

1 2

1 ответ:

Чтобы получить внутренний [[класс]], вам нужно установить значение как this значение Object.prototype.toString(), так что:

Object.prototype.toString.call(null);      // [object Null]
Object.prototype.toString.call(undefined); // [object Undefined]

Это определяется в ECMAScript 5 следующим образом:

8.6.2 внутренние свойства и методы объекта

Значение внутреннего свойства [[Class]] определяется этой спецификацией для каждого вида встроенного объекта. Значением внутреннего свойства [[Class]] объекта хоста может быть любое строковое значение, кроме одного из "Arguments", "Array", "Boolean", "Date", "Error", "Function", "JSON", "Math", "Number", "Object", "RegExp", and "String". Значение класса [[]] внутреннее свойство используется внутренне для различения различных видов объектов. обратите внимание, что эта спецификация не предоставляет никаких средств для доступа программы к этому значению, кроме как через Object.prototype.toString (15.2.4.2).