Справочник по Console Utilities API

Kayce Basques
Kayce Basques
Sofia Emelianova
Sofia Emelianova

Console Utilities API содержит набор удобных функций для выполнения распространенных задач: выбор и проверка элементов DOM, запрос объектов, отображение данных в читаемом формате, остановка и запуск профилировщика, мониторинг событий DOM и вызовов функций и многое другое.

Ищете функции console.log(), console.error() и другие функции console.*? Подробнее о документации по API консоли…

$_

$_ возвращает значение последнего вычисленного выражения.

В следующем примере вычисляется простое выражение (2 + 2). Затем оценивается свойство $_, которое содержит то же значение:

$_ – последнее вычисленное выражение.

В следующем примере вычисляемое выражение изначально содержит массив имен. При вычислении $_.length для определения длины массива значение, хранящееся в $_, меняется на последнее вычисленное выражение, 4:

Значение $_ меняется при выполнении новых команд.

0–4 долл. США

Команды $0, $1, $2, $3 и $4 позволяют получить доступ к пяти последним элементам DOM (включая псевдоэлементы, такие как ::before или ::after), которые были проверены на панели Элементы, или к пяти последним объектам кучи JavaScript, выбранным на панели "Профили". $0 возвращает последний выбранный элемент или объект JavaScript, $1 – предпоследний и т. д.

В примере ниже на панели Элементы выбран элемент img. В панели Консоль элемент $0 был обработан и отображается так же:

Пример с нулевым значением

На изображении ниже показан другой элемент, выбранный на той же странице. Теперь $0 ссылается на новый выбранный элемент, а $1 возвращает предыдущий.

Пример: 1 доллар США.

$(selector [, startNode])

$(selector) возвращает ссылку на первый элемент DOM с указанным селектором CSS. Если функция вызывается с одним аргументом, она является сокращением для функции document.querySelector().

В следующем примере возвращается ссылка на первый элемент <img> в документе:

Пример использования $('img')

Нажмите правой кнопкой мыши на результат поиска и выберите Показать на панели "Элементы", чтобы найти его в DOM, или Прокрутить до элемента, чтобы показать его на странице.

В следующем примере возвращается ссылка на выбранный элемент и отображается его свойство src:

Пример: $('img').src.

Эта функция также поддерживает второй параметр – startNode, который указывает элемент или узел, в котором нужно искать элементы. Значение по умолчанию для этого параметра – document.

В следующем примере возвращается ссылка на первый элемент img, который является потомком элемента devsite-header-background, и отображается его свойство src:

Пример: $('img', div).src.

$$(selector [, startNode])

$$(selector) возвращает массив элементов, соответствующих заданному селектору CSS. Эта команда эквивалентна вызову Array.from(document.querySelectorAll()).

В следующем примере используется $$() to create an array of all <img> elements in the current document and displays the value of each element's src property:

let images = $$('img');
for (let each of images) {
  console.log(each.src);
}
.

Пример использования<!-- notranslate l10n-placeholder: l10n-placeholder3 -->()</code> для создания массива всех элементов <code translate=Элементы<img>, которые появляются в текущем документе после выбранного узла:

let images = $$('img', document.querySelector('.devsite-header-background'));
for (let each of images) {
  console.log(each.src);
}

Пример использования $() для выбора всех изображений, которые появляются после элемента div в документе, и показа их источников.

$x(path [, startNode])

$x(path) – возвращает массив элементов DOM, соответствующих заданному выражению XPath.

Например, следующий код возвращает все элементы <p> на странице:

$x("//p")

Пример использования селектора XPath

В следующем примере возвращаются все элементы <p>, содержащие элементы <a>:

$x("//p[a]")

Пример использования более сложного селектора XPath.

Как и у других функций селектора, у $x(path) есть необязательный второй параметр startNode, который указывает элемент или узел, с которого нужно начать поиск элементов.

Пример использования селектора XPath со startNode.

clear()

clear() – очищает историю консоли.

clear();

copy(object)

copy(object) копирует строковое представление указанного объекта в буфер обмена.

copy($0);

debug(function)

Когда вызывается указанная функция, отладчик запускается и останавливается внутри функции на панели Источники, позволяя пошагово выполнять код и отлаживать его.

debug(getData);

Остановка выполнения кода внутри функции с помощью debug().

Чтобы остановить прерывание функции, используйте undebug(fn) или отключите все точки останова в интерфейсе.

Подробнее о точках останова…

dir(object)

dir(object) показывает список всех свойств указанного объекта в стиле объекта. Этот метод является сокращением для метода console.dir() Console API.

В примере ниже показана разница между оценкой document.body непосредственно в командной строке и использованием dir() для отображения того же элемента:

document.body;
dir(document.body);

Запись document.body в журнал с функцией dir() и без нее.

Дополнительную информацию можно найти в статье о console.dir() в документации по Console API.

dirxml(object)

dirxml(object) выводит XML-представление указанного объекта, как на панели Элементы. Этот метод эквивалентен методу console.dirxml().

inspect(объект/функция)

inspect(object/function) открывает и выбирает указанный элемент или объект на соответствующей панели: Элементы для элементов DOM или "Профили" для объектов кучи JavaScript.

В следующем примере элемент document.body открывается на панели Элементы:

inspect(document.body);

Проверка элемента с помощью inspect().

Если вы передадите функцию для проверки, документ откроется на панели Источники.

getEventListeners(object)

getEventListeners(object) возвращает прослушиватели событий, зарегистрированные для указанного объекта. Возвращаемое значение – это объект, который содержит массив для каждого зарегистрированного типа события (например, click или keydown). Элементы каждого массива – это объекты, описывающие прослушиватель, зарегистрированный для каждого типа. Например, в следующем списке перечислены все прослушиватели событий, зарегистрированные в объекте document:

getEventListeners(document);

Выходные данные при использовании getEventListeners().

Если для указанного объекта зарегистрировано несколько прослушивателей, то массив содержит по одному элементу для каждого из них. В следующем примере для события click в элементе документа зарегистрировано два прослушивателя событий:

Несколько слушателей.

Вы можете развернуть каждый из этих объектов, чтобы изучить их свойства:

Развернутый вид объекта прослушивателя.

Подробнее о том, как проверить свойства объекта…

keys(object)

Функция keys(object) возвращает массив, содержащий названия свойств, принадлежащих указанному объекту. Чтобы получить связанные значения тех же свойств, используйте values().

Например, предположим, что в вашем приложении определен следующий объект:

let player = {
    "name": "Parzival",
    "number": 1,
    "state": "ready",
    "easterEggs": 3
};

Предположим, что player определен в глобальном пространстве имен (для простоты). Ввод keys(player) и values(player) в консоли приведет к следующему:

Пример использования методов keys() и values().

monitor(function)

При вызове указанной функции в консоль записывается сообщение с ее названием и аргументами, которые передаются ей при вызове.

function sum(x, y) {
  return x + y;
}
monitor(sum);

Пример метода monitor().

Чтобы прекратить отслеживание, используйте unmonitor(function).

monitorEvents(object [, events])

Когда в указанном объекте происходит одно из заданных событий, объект Event регистрируется в консоли. Вы можете указать одно событие, массив событий или один из общих типов событий, сопоставленных с предопределенным набором событий. См. примеры ниже.

Ниже приведен пример кода, который отслеживает все события изменения размера объекта window.

monitorEvents(window, "resize");

Отслеживание событий изменения размера окна.

Ниже приведен массив, который позволяет отслеживать события resize и scroll в объекте window:

monitorEvents(window, ["resize", "scroll"])

Вы также можете указать один из доступных типов событий – строки, которые сопоставляются с предопределенными наборами событий. В таблице ниже перечислены доступные типы событий и связанные с ними сопоставления событий.

Тип события и сопоставленные события
мышьmousedown, mouseup, click, dblclick, mousemove, mouseover, mouseout, mousewheel;
клавиша"keydown", "keyup", "keypress", "textInput"
сенсорный ввод"touchstart", "touchmove", "touchend", "touchcancel"
контрольresize, scroll, zoom, focus, blur, select, change, submit, reset

Например, в следующем примере используется тип события key для всех соответствующих ключевых событий в текстовом поле ввода, выбранном на панели Элементы.

monitorEvents($0, "key");

Ниже приведен пример результата после ввода символов в текстовое поле:

Отслеживание ключевых событий.

Чтобы прекратить отслеживание, используйте unmonitorEvents(object[, events]).

profile([name]) и profileEnd([name])

profile() запускает сеанс профилирования ЦП JavaScript с необязательным названием. profileEnd() завершает профилирование, автоматически открывает панель Производительность и показывает результаты на дорожке Основной.

Чтобы начать профилирование:

profile("Profile 1")

Чтобы остановить профилирование и посмотреть результаты в разделе Эффективность > Основной:

profileEnd("Profile 1")

Результат в разделе Эффективность > Основное:

Профиль 1 в основной версии Performance.

Профили также могут быть вложенными. Например, в любом порядке будут работать следующие варианты:

profile('A');
profile('B');
profileEnd('A');
profileEnd('B');

queryObjects(Constructor)

Вызовите queryObjects(Constructor) из консоли, чтобы вернуть массив объектов, созданных с помощью указанного конструктора. Пример:

  • queryObjects(Promise). Возвращает все экземпляры Promise.
  • queryObjects(HTMLElement) – возвращает все элементы HTML.
  • queryObjects(foo), где foo – название класса. Возвращает все объекты, экземпляры которых были созданы с помощью new foo().

Область действия queryObjects() – это выбранный в консоли контекст выполнения.

table(data [, columns])

Регистрируйте данные объекта с форматированием таблицы, передавая объект данных с необязательными заголовками столбцов. Это ярлык для console.table().

Например, чтобы отобразить список имен в виде таблицы в консоли, нужно выполнить следующие действия:

let names = [
  { firstName: "John", lastName: "Smith" },
  { firstName: "Jane", lastName: "Doe" },
];
table(names);

Пример метода table().

Чтобы скопировать таблицу из журнала в буфер обмена в виде отформатированной таблицы Markdown или данных CSV, нажмите на таблицу в консоли правой кнопкой мыши и выберите нужный вариант копирования в контекстном меню.

undebug(function)

undebug(function) останавливает отладку указанной функции, чтобы при ее вызове отладчик больше не запускался. Используется вместе с debug(fn).

undebug(getData);

unmonitor(function)

unmonitor(function) прекращает отслеживание указанной функции. Используется вместе с monitor(fn).

unmonitor(getData);

unmonitorEvents(object [, events])

unmonitorEvents(object[, events]) прекращает отслеживать события для указанного объекта и события. Например, следующая команда останавливает отслеживание всех событий в объекте window:

unmonitorEvents(window);

Вы также можете выборочно прекратить отслеживание определенных событий объекта. Например, следующий код начинает отслеживать все события мыши на выбранном элементе, а затем прекращает отслеживать события "mousemove" (возможно, чтобы уменьшить количество сообщений в консоли):

monitorEvents($0, "mouse");
unmonitorEvents($0, "mousemove");

values(object)

values(object) возвращает массив, содержащий значения всех свойств, принадлежащих указанному объекту.

let player = {
    "name": "Parzival",
    "number": 1,
    "state": "ready",
    "easterEggs": 3
};

values(player);

Результат значений(игрок).