Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 1133743 of Console

  • URL ревизии: Web/API/Console
  • Заголовок ревизии: Console
  • ID ревизии: 1133743
  • Создано:
  • Автор: pk.prog
  • Это текущая ревизия? Нет
  • Комментарий

Содержание ревизии

{{APIRef("Console API")}}

Объект Сonsole служит для доступа к средствам отладки браузера (например, Web Console (Веб-консоль) в Firefox). Работа с ним отличается в разных браузерах, но эти методы и свойства, по факту поддерживаемые всеми браузерами.

Доступ к Сonsole можно получить через свойство глобального объекта, то есть: {{domxref("Window")}} в браузере (JavaScript), {{domxref("WorkerGlobalScope")}} — в workers это специальный способ доступа через свойство console. Он инвестен как {{domxref("Window.console")}}, и на него ссылаются для простоты так: "console".

console.log("Failed to open the specified link")

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

{{AvailableInWorkers}}

Методы

{{domxref("Console.assert()")}}
Выводит в консоль (имеется в виду веб-консоль) сообщение и стек вызова метода, если первый аргумент false.
{{domxref("Console.clear()")}}
Очистка консоли.
{{domxref("Console.count()")}}
Выводит количество вызовов метода с определенной меткой (передается в параметре метода)
{{domxref("Console.debug()")}}
Синоним для log()
{{domxref("Console.dir()")}}
Отображает интерактивный список свойств указанного объекта JavaScript. Этот список позволит вам посмотреть дочерние объекты и их свойства.
{{domxref("Console.dirxml()")}}

Отображает представление указанного объекта в XML/HTML-виде, если это возможно. Если нет - в виде JavaScript-объекта (как в виде "console.dir()").

{{domxref("Console.error()")}}
Выводит сообщение об ошибке. Для форматирования вы можете использовать подстановочные символы (маски) с дополнительными параметрами.
{{domxref("Console._exception()")}}
Синоним для error();
{{domxref("Console.group()")}}
Создаёт новую группировку сообщений, сдвигая все следющие выводимые строки вправа на один уровень. Для завершения группы вызовите groupEnd().
{{domxref("Console.groupCollapsed()")}}
Создаёт новую группировку сообщений, сдвигая все следующие сообщения вправо на один уровень; в отличие от group() вывод происходи в свёрнутую группу, требующую раскрыть её вручную по кнопке. Для завершения группы вызовите groupEnd().
{{domxref("Console.groupEnd()")}}
Выход из текущей группы.
{{domxref("Console.info()")}}
Информационное сообщение. Для форматирования вы можете использовать подстановочные символы (маски) с дополнительными параметрами.
{{domxref("Console.log()")}}
Общий метод вывода информации. Для форматирования вы можете использовать подстановочные символы (маски) с дополнительными параметрами.
{{domxref("Console.profile()")}}
Запускает профайлер, встроенный в браузер (например, Firefox performance tool). Вы можете указать метку профиля (по желанию).
{{domxref("Console.profileEnd()")}}
Останавливает профайлер.Вы можете посмотреть результат в инструментах анализа производительности браузера (например, Firefox performance tool).
{{domxref("Console.table()")}}
Отображает табличные данные в виде таблицы.
{{domxref("Console.time()")}}
Запускает таймер с именем из переданного параметра. Можно запустить одновременно до 10,000 таймеров на странице.
{{domxref("Console.timeEnd()")}}
Останавливает указанный таймер и записывает в лог, сколько прошло секунд от его старта.
{{domxref("Console.timeStamp()")}}
Ставит маркер в браузерном инструменте измерения производительности Timeline или Waterfall.
{{domxref("Console.trace()")}}
Вывод трассировки стека.
{{domxref("Console.warn()")}}
Выводит предупреждающее сообщение. Для форматирования вы можете использовать подстановочные символы (маски) с дополнительными параметрами.

Использование

Вывод текста в консоль

Чаще всего Консоль используется для вывода строк текста и других типов данных. Есть четыре категории вывода, которые вы можете создавать, используя функции: {{domxref("console.log()")}}, {{domxref("console.info()")}}, {{domxref("console.warn()")}}, {{domxref("console.error()")}}. Их вывод стилизован по-разному, и вы можете использовать фильтры, предоставляемые браузером, чтобы видеть только интересующие вас вещи.

Есть два пути использования функций вывода; можно просто передать список объектов, чьё строковое представление сольётся в одну строку, после чего выведется в консоль, или выможете использовать строку с подстановочными символами и списком объектов-параметров для подстановки в них.

Вывод одного объекта

Простейший способ для вывода одного объекта:

var someObject = { str: "Some text", id: 5 };
console.log(someObject);

Вывод будет таким:

[09:27:13.475] ({str:"Some text", id:5})

Вывод нескольких объектов

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

var car = "Dodge Charger";
var someObject = {str:"Some text", id:5}; 
console.info("My first car was a", car, ". The object is: ", someObject);

Вывод будет таким:

[09:28:22.711] My first car was a Dodge Charger . The object is:  ({str:"Some text", id:5})

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

Gecko 9.0 {{geckoRelease("9.0")}} ввёл поддержку подстановочных символов (масок). При передаче строки одному из методов вы можете использовать следуюущие символы:

Подстановочный символ Описание
%o Выводит ссылку на JavaScript-объект. Нажатие на ссылку приведёт к открытию инспектора кода.
%d or %i Выведет целое число. Форматирование пока не поддерживается.
%s Выводит строку.
%f Выводит число с плавающей точкой. Форматирование пока не поддерживается.

Каждая маска, принимая следующий аргумент, исключает его из списка параметров. Следующая маска берёт следующий параметр. Пример:

for (var i=0; i<5; i++) {
  console.log("Hello, %s. You've called me %d times.", "Bob", i+1);
}

Вывод будет таким:

[13:14:13.481] Hello, Bob. You've called me 1 times.
[13:14:13.483] Hello, Bob. You've called me 2 times.
[13:14:13.485] Hello, Bob. You've called me 3 times.
[13:14:13.487] Hello, Bob. You've called me 4 times.
[13:14:13.488] Hello, Bob. You've called me 5 times.

Стилизация вывода консоли

Можно  использовать директиву "%c" для применения стилей CSS при выводе в консоль:

console.log("%cMy stylish message", "color: red; font-style: italic");

Note: Довольно много свойств стилей CSS поддерживается; но вам необходимо поэкспериментировать и посмотреть, что окажется более полезным.

{{h3_gecko_minversion("Using groups in the console", "9.0")}}

Вы можете использовать вложенные группы для организации вывода, визуально комбинируя связанный материал. Для создания вложенного блока вызовите console.group(). Метод console.groupCollapsed() похожий, но создаёт новый блок свёрнутым, который побребует надать на кнупку, чтобы его раскрыть для чтения.

Note: Collapsed groups are not supported yet in Gecko; the groupCollapsed() method is the same as group() at this time.

To exit the current group, simply call console.groupEnd().

For example, given this code:

console.log("This is the outer level");
console.group();
console.log("Level 2");
console.group();
console.log("Level 3");
console.warn("More of level 3");
console.groupEnd();
console.log("Back to level 2");
console.groupEnd();
console.debug("Back to the outer level");

The output looks like this:

nesting.png

{{h3_gecko_minversion("Timers", "10.0")}}

In order to calculate the duration of a specific operation, Gecko 10 introduced the support of timers in the console object. To start a timer, call the console.time() method, giving it a name as the only parameter. To stop the timer, and to get the elapsed time in milliseconds, just call the console.timeEnd() method, again passing the timer's name as the parameter. Up to 10,000 timers can run simultaneously on a given page.

For example, given this code:

console.time("answer time");
alert("Click to continue");
console.timeEnd("answer time");

will log the time needed by the user to discard the alert box:

timerresult.png

Notice that the timer's name is displayed both when the timer is started and when it's stopped.

Note: It's important to note that if you're using this to log the timing for network traffic, the timer will report the total time for the transaction, while the time listed in the network panel is just the amount of time required for the header. If you have response body logging enabled, the time listed for the response header and body combined should match what you see in the console output.

Стек вызова

The console object also supports outputting a stack trace; this will show you the call path taken to reach the point at which you call {{domxref("console.trace()")}}. Given code like this:

foo();

function foo() {
  function bar() {
    console.trace();
  }
  bar();
}

The output in the console looks something like this:

Замечания

  • At least in Firefox, if a page defines a console object, that object overrides the one built into Firefox.
  • Prior to {{Gecko("12.0")}}, the console object's methods only work when the Web Console is open. Starting with {{Gecko("12.0")}}, output is cached until the Web Console is opened, then displayed at that time.
  • It's worth noting that the Firefox's built-in console object is compatible with the one provided by Firebug.

См. так же

Реализации в браузерах

Источник ревизии

<div>{{APIRef("Console API")}}</div>

<p>Объект <strong>Сonsole</strong><strong> </strong>служит для доступа к средствам отладки браузера (например, <a href="/ru/docs/Tools/Web_Console">Web Console (Веб-консоль)</a> в Firefox). Работа с ним отличается&nbsp;в разных браузерах, но эти методы и свойства, по факту поддерживаемые всеми браузерами.</p>

<p>Доступ к <strong>Сonsole </strong>можно получить через свойство глобального объекта, то есть: {{domxref("Window")}} в браузере (JavaScript), {{domxref("WorkerGlobalScope")}} — в <code>workers </code>это специальный способ доступа через свойство <code>console</code>. Он инвестен как {{domxref("Window.console")}}, и на него ссылаются для простоты так: "<code>console</code>".</p>

<pre class="brush: js">
console.log("Failed to open the specified link")</pre>

<p>Ниже описаны <a href="#Methods">методы</a>, доступные в объекте Console и приведены несколько примеров <a href="#Usage">использования</a>&nbsp;.</p>

<p>{{AvailableInWorkers}}</p>

<h2 id="Методы">Методы</h2>

<dl>
 <dt>{{domxref("Console.assert()")}}</dt>
 <dd>Выводит в консоль (имеется в виду веб-консоль) сообщение и стек вызова метода, если первый аргумент&nbsp;<code>false</code>.</dd>
 <dt>{{domxref("Console.clear()")}}</dt>
 <dd>Очистка консоли.</dd>
 <dt>{{domxref("Console.count()")}}</dt>
 <dd>Выводит количество вызовов метода&nbsp;с определенной меткой (передается в параметре метода)</dd>
 <dt>{{domxref("Console.debug()")}}</dt>
 <dd>Синоним для <code>log()</code></dd>
 <dt>{{domxref("Console.dir()")}}</dt>
 <dd>Отображает интерактивный список свойств указанного объекта JavaScript. Этот список позволит вам посмотреть дочерние объекты и их свойства.</dd>
 <dt>{{domxref("Console.dirxml()")}}</dt>
 <dd>
 <p>Отображает представление указанного объекта в XML/HTML-виде, если это возможно. Если нет - в виде JavaScript-объекта (как в виде "console.dir()").</p>
 </dd>
 <dt>{{domxref("Console.error()")}}</dt>
 <dd>Выводит сообщение об ошибке. Для форматирования вы можете использовать <a href="/ru/docs/Web/API/console#Using_string_substitutions">подстановочные символы (маски)</a> с дополнительными параметрами.</dd>
 <dt>{{domxref("Console._exception()")}}</dt>
 <dd>Синоним для <code>error();</code></dd>
 <dt>{{domxref("Console.group()")}}</dt>
 <dd>Создаёт новую <a href="/ru/docs/Web/API/console#Using_groups_in_the_console">группировку</a> сообщений, сдвигая все следющие выводимые строки вправа на один уровень. Для завершения <a href="/ru/docs/Web/API/console#Using_groups_in_the_console">группы </a>вызовите <code>groupEnd()</code>.</dd>
 <dt>{{domxref("Console.groupCollapsed()")}}</dt>
 <dd>Создаёт новую <a href="/ru/docs/Web/API/console#Using_groups_in_the_console">группировку </a>сообщений, сдвигая все следующие сообщения вправо на один уровень; в отличие от&nbsp;<code>group()</code> вывод происходи в свёрнутую <a href="/ru/docs/Web/API/console#Using_groups_in_the_console">группу</a>, требующую раскрыть её вручную по кнопке. Для завершения <a href="/ru/docs/Web/API/console#Using_groups_in_the_console">группы </a>вызовите <code>groupEnd()</code>.</dd>
 <dt>{{domxref("Console.groupEnd()")}}</dt>
 <dd>Выход из текущей <a href="/ru/docs/Web/API/console#Using_groups_in_the_console">группы</a>.</dd>
 <dt>{{domxref("Console.info()")}}</dt>
 <dd>Информационное сообщение. Для форматирования вы можете использовать <a href="/ru/docs/Web/API/console#Using_string_substitutions">подстановочные символы (маски)</a> с дополнительными параметрами.</dd>
 <dt>{{domxref("Console.log()")}}</dt>
 <dd>Общий метод вывода информации. Для форматирования вы можете использовать <a href="/ru/docs/Web/API/console#Using_string_substitutions">подстановочные символы (маски)</a> с дополнительными параметрами.</dd>
 <dt>{{domxref("Console.profile()")}}</dt>
 <dd>Запускает профайлер, встроенный в браузер (например, <a href="/ru/docs/Tools/Производительность">Firefox performance tool</a>). Вы можете указать метку профиля (по желанию).</dd>
 <dt>{{domxref("Console.profileEnd()")}}</dt>
 <dd>Останавливает профайлер.Вы можете посмотреть результат в инструментах анализа производительности браузера (например, <a href="/ru/docs/Tools/Производительность">Firefox performance tool</a>).</dd>
 <dt>{{domxref("Console.table()")}}</dt>
 <dd>Отображает табличные данные в виде таблицы.</dd>
 <dt>{{domxref("Console.time()")}}</dt>
 <dd>Запускает <a href="/ru/docs/Web/API/console#Timers">таймер</a> с именем из переданного параметра. Можно запустить одновременно до 10,000 таймеров на странице.</dd>
 <dt>{{domxref("Console.timeEnd()")}}</dt>
 <dd>Останавливает указанный <a href="/ru/docs/Web/API/console#Timers">таймер</a> и записывает в лог, сколько прошло секунд от его старта.</dd>
 <dt>{{domxref("Console.timeStamp()")}}</dt>
 <dd>Ставит маркер в браузерном инструменте измерения производительности <a href="https://developer.chrome.com/devtools/docs/timeline">Timeline</a> или <a href="/ru/docs/Tools/Производительность/Waterfall">Waterfall</a>.</dd>
 <dt>{{domxref("Console.trace()")}}</dt>
 <dd>Вывод <a href="/ru/docs/Web/API/console#Stack_traces">трассировки стека</a>.</dd>
 <dt>{{domxref("Console.warn()")}}</dt>
 <dd>Выводит предупреждающее сообщение. Для форматирования вы можете использовать <a href="/ru/docs/Web/API/console#Using_string_substitutions">подстановочные символы (маски)</a> с дополнительными параметрами.</dd>
</dl>
<!-- todo?: add console.assert; WebKit has shipped it for a quite a while (https://trac.webkit.org/changeset/33946, webkit 526.7) and IE8+, Opera support it too. -->

<h2 id="Usage" name="Usage">Использование</h2>

<h3 id="Outputting_text_to_the_console" name="Outputting_text_to_the_console">Вывод текста в консоль</h3>

<p>Чаще всего Консоль используется для вывода строк текста и других типов данных. Есть четыре категории вывода, которые вы можете создавать, используя функции: {{domxref("console.log()")}}, {{domxref("console.info()")}}, {{domxref("console.warn()")}}, {{domxref("console.error()")}}. Их вывод стилизован по-разному, и вы можете использовать фильтры, предоставляемые браузером, чтобы видеть только интересующие вас вещи.</p>

<p>Есть два пути использования функций вывода; можно просто передать список объектов, чьё строковое представление сольётся в одну строку, после чего выведется в консоль, или выможете использовать строку с подстановочными символами и списком объектов-параметров для подстановки в них.</p>

<h4 id="Outputting_a_single_object">Вывод одного объекта</h4>

<p>Простейший способ для вывода одного объекта:</p>

<pre class="brush: js">
var someObject = { str: "Some text", id: 5 };
console.log(someObject);
</pre>

<p>Вывод будет таким:</p>

<pre>
[09:27:13.475] ({str:"Some text", id:5})</pre>

<h4 id="Outputting_multiple_objects">Вывод нескольких объектов</h4>

<p>Вы можете выводить несколько объектов, просто перечисляя их в вызываемой функции:</p>

<pre class="brush: js">
var car = "Dodge Charger";
var someObject = {str:"Some text", id:5}; 
console.info("My first car was a", car, ". The object is: ", someObject);</pre>

<p>Вывод будет таким:</p>

<pre>
[09:28:22.711] My first car was a Dodge Charger . The object is:&nbsp; ({str:"Some text", id:5})
</pre>

<h4 id="Преобразование_строк">Преобразование строк с использованием масок</h4>

<p>Gecko 9.0 {{geckoRelease("9.0")}} ввёл поддержку подстановочных символов (масок). При передаче строки одному из методов вы можете использовать следуюущие символы:</p>

<table class="standard-table" style="width:auto">
 <tbody>
  <tr>
   <td class="header">Подстановочный символ</td>
   <td class="header">Описание</td>
  </tr>
  <tr>
   <td>%o</td>
   <td>Выводит ссылку на JavaScript-объект. Нажатие на ссылку приведёт к открытию инспектора кода.</td>
  </tr>
  <tr>
   <td>%d or %i</td>
   <td>Выведет целое число. Форматирование пока не поддерживается.</td>
  </tr>
  <tr>
   <td>%s</td>
   <td>Выводит строку.</td>
  </tr>
  <tr>
   <td>%f</td>
   <td>Выводит число с плавающей точкой. Форматирование пока не поддерживается.</td>
  </tr>
 </tbody>
</table>

<p>Каждая маска, принимая следующий аргумент, исключает его из списка параметров. Следующая маска берёт следующий параметр. Пример:</p>

<pre>
for (var i=0; i&lt;5; i++) {
&nbsp;&nbsp;console.log("Hello, %s. You've called me %d times.", "Bob", i+1);
}
</pre>

<p>Вывод будет таким:</p>

<pre>
[13:14:13.481] Hello, Bob. You've called me 1 times.
[13:14:13.483] Hello, Bob. You've called me 2 times.
[13:14:13.485] Hello, Bob. You've called me 3 times.
[13:14:13.487] Hello, Bob. You've called me 4 times.
[13:14:13.488] Hello, Bob. You've called me 5 times.
</pre>

<h4 id="Стилизация_вывода_консоли">Стилизация вывода консоли</h4>

<p>Можно&nbsp; использовать директиву <code>"%c"</code> для применения стилей CSS при выводе в консоль:</p>

<pre class="brush: js">
console.log("%cMy stylish message", "color: red; font-style: italic");</pre>

<div><img alt="" src="https://mdn.mozillademos.org/files/7739/console-style.png" style="display:block; height:52px; margin-left:auto; margin-right:auto; width:293px" /></div>

<div class="note">
<p><strong>Note</strong>: Довольно много свойств стилей CSS поддерживается; но вам необходимо поэкспериментировать и посмотреть, что окажется более полезным.</p>
</div>

<div>{{h3_gecko_minversion("Using groups in the console", "9.0")}}</div>

<p>Вы можете использовать вложенные группы для организации вывода, визуально комбинируя связанный материал. Для создания вложенного блока вызовите <code>console.group()</code>. Метод <code>console.groupCollapsed()</code> похожий, но создаёт новый блок свёрнутым, который побребует надать на кнупку, чтобы его раскрыть для чтения.</p>

<div class="note"><strong>Note:</strong> Collapsed groups are not supported yet in Gecko; the <code>groupCollapsed()</code> method is the same as <code>group()</code> at this time.</div>

<p class="note">To exit the current group, simply call <code>console.groupEnd()</code>.</p>

<p class="note">For example, given this code:</p>

<pre class="brush: js">
console.log("This is the outer level");
console.group();
console.log("Level 2");
console.group();
console.log("Level 3");
console.warn("More of level 3");
console.groupEnd();
console.log("Back to level 2");
console.groupEnd();
console.debug("Back to the outer level");
</pre>

<p>The output looks like this:</p>

<p><img alt="nesting.png" class="default internal" src="/@api/deki/files/6082/=nesting.png" /></p>

<p>{{h3_gecko_minversion("Timers", "10.0")}}</p>

<p>In order to calculate the duration of a specific operation, Gecko 10 introduced the support of timers in the <code>console</code> object. To start a timer, call the <code>console.time</code><code>()</code> method, giving it a name as the only parameter. To stop the timer, and to get the elapsed time in milliseconds, just call the <code>console.timeEnd()</code> method, again passing the timer's name as the parameter. Up to 10,000 timers can run simultaneously on a given page.</p>

<p>For example, given this code:</p>

<pre class="brush: js">
console.time("answer time");
alert("Click to continue");
console.timeEnd("answer time");
</pre>

<p>will log the time needed by the user to discard the alert box:</p>

<p><img alt="timerresult.png" class="default internal" src="/@api/deki/files/6084/=timerresult.png" /></p>

<p>Notice that the timer's name is displayed both when the timer is started and when it's stopped.</p>

<div class="note"><strong>Note:</strong> It's important to note that if you're using this to log the timing for network traffic, the timer will report the total time for the transaction, while the time listed in the network panel is just the amount of time required for the header. If you have response body logging enabled, the time listed for the response header and body combined should match what you see in the console output.</div>

<h3 id="Стек_вызова">Стек вызова</h3>

<p>The console object also supports outputting a stack trace; this will show you the call path taken to reach the point at which you call {{domxref("console.trace()")}}. Given code like this:</p>

<pre>
foo();

function foo() {
&nbsp; function bar() {
&nbsp;&nbsp;&nbsp; console.trace();
&nbsp; }
&nbsp; bar();
}
</pre>

<p>The output in the console looks something like this:</p>

<p><img alt="" src="https://mdn.mozillademos.org/files/7167/api-trace2.png" style="display:block; margin-left:auto; margin-right:auto" /></p>

<h2 id="Замечания">Замечания</h2>

<ul>
 <li>At least in Firefox, if a page defines a console object, that object overrides the one built into Firefox.</li>
 <li>Prior to {{Gecko("12.0")}}, the console object's methods only work when the Web Console is open. Starting with {{Gecko("12.0")}}, output is cached until the Web Console is opened, then displayed at that time.</li>
 <li>It's worth noting that the Firefox's built-in <code>console</code> object is compatible with the one provided by <a class="external" href="https://getfirebug.com/" title="https://getfirebug.com/">Firebug</a>.</li>
</ul>

<h2 id="См._так_же">См. так же</h2>

<ul>
 <li><a href="/ru/docs/Tools" title="Tools">Tools</a></li>
 <li><a href="/ru/docs/Tools/Web_Console" title="Web Console">Web Console</a> - how the Web Console in Firefox handles console API calls</li>
 <li><a href="/ru/docs/Tools/Remote_Debugging">Remote debugging</a> - how to see console output when the debugging target is a mobile device</li>
 <li><a href="/ru/Firefox_OS/Using_the_App_Manager">Debugging apps on Firefox OS</a> - using the App Manager to debug apps running on Firefox OS</li>
 <li><a href="/ru/docs/Mozilla/Firefox_OS/Debugging/On-device_console_logging" title="/ru/docs/Mozilla/Firefox_OS/Debugging/On-device_console_logging">On-device console logging</a> - how to do logging on Firefox OS devices</li>
</ul>

<h3 id="Реализации_в_браузерах">Реализации в браузерах</h3>

<ul>
 <li><a href="https://developers.google.com/chrome-developer-tools/docs/console-api">Google Chrome DevTools</a></li>
 <li><a href="https://getfirebug.com/wiki/index.php/Console_API">Firebug</a></li>
 <li><a href="https://msdn.microsoft.com/ru/library/hh772173(v=vs.85).aspx">Internet Explorer</a></li>
 <li><a href="https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/Console/Console.html">Safari</a></li>
</ul>
Вернуть эту версию