JavaScript: почему консоль не считается стандартным встроенным объектом? - PullRequest
0 голосов
/ 29 августа 2018

console не входит в список , но в значительной степени доступен для использования в любой среде.

С другой стороны, почему console не пишется с заглавной буквы, как любой другой встроенный глобальный объект, такой как Number или Array?

1 Ответ

0 голосов
/ 29 августа 2018

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.

...