Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
355 lines (341 sloc) 33.9 KB

jsConsoleApiReference

Справочник Javascript console api - это страница с описанием методов объекта console в различных браузерах и средах исполнения Javascript.

Варианты страницы с описанием на других языках:

Страница в формате Markdown не отображает всплывающие подсказки, поясняющие некоторые особенности реализаций методов в браузерах и средах. Полноценное описание находится на HTML-странице, которая, к тому же, может сворачивать все или часть описаний.

Сокращения

  • -⊝- — метод в данной среде не используется;
  • ± — метод используется, но реализован с особенностями;
  • + — полноценная реализация метода.

Описание методов и список поддержки браузерами и платформами

Chrome
Firebug
Firefox
 IE
Node.js
Safari
Opera
assert(expression[, object, ...])
Если выражение expression ложно, выводит console.error, иначе — ничего не выводит.
  +   +   + (28+)   +   +   +   ±
clear()
Очищает окно консоли.
  +   + -⊝-   + -⊝-   +   +
count([object])
Каждый раз выводит количество проходов данной точки кода. Если есть аргумент object, то перед значением счётчика выводится object.toString().
  +   +   + (30+)   + -⊝-   + ± ...
debug(object[, object, ...])
Эквивалент console.log для совместимости со старым вариантом объекта console, когда .debug выводил дополнительно ссылку на строку кода, из которой он был вызван.
   равно .log()
  +   +   +   + -⊝-   + ± ...
dir(object)
object выводится как Javascript-объект (для DOM-элементов — все их атрибуты и методы). Похожим образом работает %O в console.log в Chrome.
  +   +   + (8+)   + (9+)   +   +   +
dirxml(object)
Выводится XML-код объекта.
  +   + -⊝-   + (11+) -⊝-   + ± ...
error(object[, object, ...])
Выводит ошибку и результат console.trace для места, откуда она была вызвана (не останавливая выполнение программы). Поддерживаются паттерны (%s, %d (%i), %f, %o, %O, %c), как в console.log. Пример с трассировкой стека вызовов (Firefox 31+):
  + ± ...   +   + (8+)   +   + ± ...
exception(object[, object, ...])
Эквивалент .error().
  равно .error()
-⊝- -⊝-   + (28+) -⊝-        -⊝- -⊝- -⊝-
group(object[, object, ...])
Начинает развёрнутую группу записей в консоли, которая вручную затем может сворачиваться. Группа оканчивается командой .groupEnd(). Поддерживаются паттерны (см. .log()). Пример кода и результата (из статьи «Возможности консоли браузера», 2013):
(javascript)
	console.group("module A")
	console.log('a')
	console.log('a')
	console.log('a')
	console.group("nested module B")
	console.log('b')
	console.log('b')
	console.log('b')
	console.groupEnd()
	console.groupCollapsed("nested collapsed module C")
	console.log('c')
	console.log('c')
	console.log('c')
	console.groupEnd()
	console.groupEnd()
	console.group("module D")
	console.log('d')
	console.log('d')
	console.log('d')
	console.groupEnd()

<img src="img/groupLog.png"/></dd></dl></td>
  +   + ± ...   + (11+) -⊝- + (4+)   +
groupCollapsed(object[, object, ...])
Начинает изначально свёрнутую группу записей в консоли, которая вручную затем может разворачиваться. Группа оканчивается командой .groupEnd(). Поддерживаются паттерны (см. .log()).
  +   + ± ... (9+)   + (11+) -⊝- + (5.1+)   +
groupEnd()
Обозначает конец группы сообщений лога, которые способны сворачиваться-разворачиваться (кроме Firefox) вручную.
  +   +   + (9+)   + (11+) -⊝- + (4+)   +
Chrome
Firebug
Firefox
IE
Node.js
Safari
Opera
info(object[, object, ...])
Аналогична .log(), но оформляется в ином дизайне, для различения типов сообщений, например, для градации важности или для иного смыслового значения этой группы сообщений. Поддерживаются паттерны (описаны в .log()). Пример различий для Firebug, Chrome, IE9:
  +   +   +   +   +   +   +
log(object[, object, ...])
Выводит аргументы в консоль, разделяя пробелами. Самая популярная из команд console.

Поддерживает паттерны — специальные имена в первом аргументе, указывающие, что его надо использовать как шаблон, в который будут подставляться следующие аргументы вместо переменных в шаблоне (как в printf() на С, но значительно проще). Примеры:

(javascript)
  console.log('У Пети было %d %s',10,'яблок');
  console.log('Пи равно %f',Math.PI);
  console.log('%cКаждый %cОхотник %cЖелает%c знать, где сидит фазан',
      'color:red;','font-size:16px;color:orange;',
      'background:black;color:yellow;',
      'font:normal;color:normal;background:normal;');
  console.log('body as DOM: %o',document.getElementsByTagName('body')[0]);
  console.log('object: %O',{a:1,b:2});
  console.log('body as Object: %O',document.getElementsByTagName('body')[0]);

Виды паттернов и тип данного, в который преобразуется значение подставляемого аргумента:<br>
<b>%s</b> &mdash; строка.<br>
<b>%d</b> или <b>%i</b> &mdash;	 число.<br>
<b>%f</b> &mdash; число с плавающей точкой (Firebug тоже поддерживает).<br>
<b>%o</b> &mdash; DOM-элемент (Firebug выводит как ссылку на элемент. Chrome, кроме ссылки, отображает элемент в консоли. Firefox по клику открывает элемент в модальном окне (доступны все атрибуты и методы этого объекта)).<br>
<b>%O</b> &mdash; JS-объект (не поддерживается в Firefox; Chrome преобразует DOM-объект в JS-объект для этого паттерна; Firebug не отличает <b>%o</b> от <b>%O</b>).<br>
<b>%c</b> &mdash; CSS-стиль (color, background, font; в Firefox &mdash; c версии 31). Пример стилизации паттерном <b>%c</b> (Firefox):<br>
<img src="img/styled-console-logs.png"/></dd></dl></td>
    (важно)
  +   +   +   +   +   + ± ...
markTimeline()
Аналог .timeStamp() для Safari, но в нём .timeStamp() не поддерживается, и наоборот.
 =.timeStamp()
-⊝- -⊝- -⊝- -⊝- -⊝-   + -⊝-
profile([label])
Запускает Javascript-профайлер, затем показывает результаты под именем label.
  +   + (devtools) + (10+) -⊝-   + -⊝-
profileEnd()
Выключает Javascript-профайлер.
  +   + (devtools) + (10+) -⊝-   + -⊝-
table(data[, columns])
Двумерные табличные данные — в формате таблицы. Data — массив или объект (или объект из объектов, объект из массивов), каждый элемент которого будет строкой в таблице. Первый столбец двумерного массива будет его индексом (от 0). Или, если это — объект, первый столбец будет состоять из ключей объекта. Пример из Firefox (объект объектов):

Columns — дополнительный массив названий колонок для заголовков таблицы, если строки созданы из массивов, а мы не хотим, чтобы названиями были числовые индексы. Выше — был пример результата (Firefox), полученного или из именованных колонок, или из объекта объектов. Ниже — что было бы из массива массивов без параметра columns:
  +   +   + (34+) -⊝- -⊝- -⊝- -⊝-
time(label)
Включает счётчик (миллисекунд) под именем label.
  +   +   + (10+) + (11+)   + + (4+)   ±
timeEnd(label)
Останавливает счётчик (миллисекунд) под именем label и публикует результат под этим именем. Пример (Хром):
  +   +   + (10+) + (11+)   + + (4+)   ±
timeStamp([label])
Отрисовывает метки времени на диаграмме таймингов скрипта, что позволяет следить за динамикой поведения программы. Пример (Firebug):
  +   + -⊝- -⊝- -⊝- -⊝- -⊝-
trace()
Показывает стек трассировки функции на данный момент исполнения (то же, что обычно показывается при остановке на месте ошибки). Пример в Safari (в боковой панели), в Хроме (в консоли):

В Firefox:
  +   +   + (10+) + (11+)   + + (7.01+) ± ...
warn(object[, object, ...])
Аналогична .log() и .info(), но оформляется в ином дизайне, для различения типов сообщений. Поддерживаются паттерны (описаны в .log()).
  +   +   +   +   +   +   +
debugger;
Останавливает выполнение Javascript на текущей строке. Равносилен установке точки останова (breakpoint) в отладчике. Кроме остановки, никак не отражается на исполняемой программе.
  (оператор)
  +   +   +   +   +   +   +
throw new Error('mesasge');
Останавливает выполнение Javascript на текущей строке, прерывая выполнение. (Поддерживается всеми средами исполнения Javascript.)

Ссылки