Это [объект значение 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 ответ:
Чтобы получить внутренний [[класс]], вам нужно установить значение как
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).