ECMA-262 не определяет console
, потому что ECMA-262 не имеет понятия ввода / вывода. Просто каждый браузер реализует / внедряет свою собственную реализацию console
.
Объект console был впервые представлен средствами отладки браузера, Firebug был первым, кто попытался сформулировать согласованный стандарт для консоли API.
WHATWG (Рабочая группа по технологиям веб-гипертекста) находится на ранней стадии разработки спецификации console
для определения семантики консольных API-интерфейсов в попытке создать конвергенцию в разных средах.
console
не включен в список , но в значительной степени доступен для использования в любой среде.
Объект console
между браузерами как-то согласован из-за следующего:
Все браузеры и Node.js индивидуально следуют спецификации консоли WHATWG.
Chrome расширяет WebKit , который также используется Safari.
Node.js построен поверх V8 , который определяет API консоли , используемый узлом.
В настоящее время многие из методов console
совместимы с различными браузерами, однако это не всегда имело место. Проверьте таблицу совместимости , чтобы увидеть различия.
Возможно, каждая реализация console
отличается в зависимости от среды, в которой она обслуживается (чипы, серверы, браузеры и т. Д.). Следовательно, нет смысла стандартизировать его в ECMA.
Как и другие специфичные для браузера API, console
внедряется в javascript, чтобы предоставить разработчикам доступ к API браузера, таким как Node
и Document
.
.
Вот список полного веб-API , внедренного в javascript для доступа в коде JS в браузере.
почему console
не пишется с заглавной буквы, как любой другой встроенный глобальный объект?
Все методы, предоставляемые спецификацией whatwg, реализующей интерфейс window
, не пишутся с заглавной буквы ( Проверьте интерфейс окна ), поскольку ни один из этих методов не является функциями конструктора.
В спецификации 1074 * также упоминается, что console
имеет меньший регистр по историческим причинам. Однако в этой заметке речь идет об определении пространства имен с использованием «console» вместо «Console», использованного в спецификации, и NOT предоставляемого API.
FUN FACT : Я помню время, когда console
использовал, чтобы выдать ошибку, если отладчик не был открыт в IE.