diff options
Diffstat (limited to 'files/ru/web/api/console/assert/index.html')
-rw-r--r-- | files/ru/web/api/console/assert/index.html | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/files/ru/web/api/console/assert/index.html b/files/ru/web/api/console/assert/index.html new file mode 100644 index 0000000000..1ca29fa5f7 --- /dev/null +++ b/files/ru/web/api/console/assert/index.html @@ -0,0 +1,112 @@ +--- +title: console.assert() +slug: Web/API/Console/assert +tags: + - API + - Debugging + - console + - web console + - Отладка +translation_of: Web/API/console/assert +--- +<div>{{APIRef("Console API")}}{{Non-standard_Header}}</div> + +<p>Метод <code><strong>console.assert()</strong></code> записывает сообщение об ошибке в консоль в случае, если утверждение ложно. Если утверждение истинно - ничего не происходит.</p> + +<p>{{AvailableInWorkers}}</p> + +<div class="note"> +<p><strong>Важно:</strong> Реализация м<em>етода <code>console.assert()</code> в браузере и Node.js отличается.</em></p> + +<p>В браузере, вызов console.assert() с ложным утверждением вызовет печать ошибки в консоль без прерывания текущего выполнения скрипта, а в Node.js в аналогичном случае будет выброшена ошибка - AssertionError.</p> +</div> + +<h2 id="Синтаксис">Синтаксис</h2> + +<pre class="syntaxbox">console.assert(<em>assertion</em>, <em>obj1</em> [, <em>obj2</em>, ..., <em>objN</em>]); +console.assert(<em>assertion</em>, <em>msg</em> [, <em>subst1</em>, ..., <em>substN</em>]); // си-подобное форматирование строк +</pre> + +<h3 id="Параметры">Параметры</h3> + +<dl> + <dt><code>assertion</code></dt> + <dd>Любое логическое утверждение. Если утверждение ложно - сообщение об ошибке записывается в консоль.</dd> + <dt><code>obj1</code> ... <code>objN</code></dt> + <dd>Список JavaScript объектов для вывода. Строковое представление этих объектов добавляются в порядке, указанном в списке, и выводятся.</dd> + <dt><code>msg</code></dt> + <dd>Строка JavaScript, содержащая ноль или более строк подстановки.</dd> + <dt><code>subst1</code> ... <code>substN</code></dt> + <dd>Объекты JavaScript, которыми нужно заменить строки подстановки в рамках параметра <strong>msg</strong>. Этот параметр даёт дополнительный контроль над форматированием вывода.</dd> +</dl> + +<h2 id="Примеры">Примеры</h2> + +<p>В следующем примере кода демонстрируется использование объекта JavaScript после утверждения:</p> + +<pre class="brush: js">const errorMsg = '# не чётное число'; +for (let number = 2; number <= 5; number += 1) { + console.log('# равно ' + number); + console.assert(number % 2 === 0, {number: number, errorMsg: errorMsg}); + // или, при использовании {{jsxref("Operators/Object_initializer", "сокращения имён свойств в ECMAScript 2015", "Новая_нотация_в_ECMAScript_2015")}}: + // console.assert(number % 2 === 0, {number, errorMsg}); +} +// output: +// # равно 2 +// # равно 3 +// Assertion failed: {number: 3, errorMsg: "# не чётное число"} +// # равно 4 +// # равно 5 +// Assertion failed: {number: 5, errorMsg: "# не чётное число"} +</pre> + +<p>Обратите внимание, что хотя строка, содержащая строку подстановки, работает как параметр для <code>console.log</code> в Node и многих, если не большинстве, браузерах...</p> + +<pre>console.log('слово %s', 'foo'); +// output: слово foo +</pre> + +<p>...использование такой строки в настоящее время не работает в качестве параметра для <code>console.assert</code> во всех браузерах:</p> + +<pre class="brush: js">console.assert(false, 'слово %s', 'foo'); +// корректный вывод в Node.js и некоторых браузерах +// (например Firefox v60.0.2): +// Assertion failed: слово foo +// некорректный вывод в некоторых браузерах +// (например Chrome v67.0.3396.87): +// Assertion failed: слово %s foo</pre> + +<p>Смотрите также <a href="/ru/docs/Web/API/console#Outputting_text_to_the_console">Вывод текста в консоль</a> в документации {{domxref("console")}} для более детальной информации.</p> + +<h2 id="Спецификации">Спецификации</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Спецификации</th> + <th scope="col">Статус</th> + <th scope="col">Комментарий</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("Console API", "#consoleassertexpression-object", "console.assert()")}}</td> + <td>{{Spec2("Console API")}}</td> + <td>Первоначальное определение</td> + </tr> + </tbody> +</table> + +<h2 id="Поддержка_браузерами">Поддержка браузерами</h2> + + + +<p>{{Compat("api.Console.assert")}}</p> + +<h2 id="Смотрите_также">Смотрите также</h2> + +<ul> + <li><a href="http://www.opera.com/dragonfly/documentation/console/">Opera Dragonfly documentation: Console</a></li> + <li><a href="http://msdn.microsoft.com/library/gg589530">MSDN: Using the F12 Tools Console to View Errors and Status</a></li> + <li><a href="https://developer.chrome.com/devtools/docs/console#assertions">Chrome Developer Tools: Using the Console</a></li> +</ul> |