console.assert()
================

**Не стандартно:** Эта возможность не является стандартной и стандартизировать её пока никто не собирается. Не используйте её на сайтах, смотрящих во внешний мир: она будет работать не у всех пользователей. Также могут присутствовать большие несовместимости между реализациями и её поведение может в будущем измениться.

Метод **`console.assert()`** записывает сообщение об ошибке в консоль в случае, если утверждение ложно. Если утверждение истинно - ничего не происходит.

**Примечание:** Эта возможность доступна в Web Workers

**Примечание:** Реализация м*етода `console.assert()` в браузере и Node.js отличается.*

В браузере, вызов console.assert() с ложным утверждением вызовет печать ошибки в консоль без прерывания текущего выполнения скрипта, а в Node.js в аналогичном случае будет выброшена ошибка - AssertionError.

Синтаксис
---------
```

console.assert(assertion, obj1 [, obj2, ..., objN]);
console.assert(assertion, msg [, subst1, ..., substN]); // си-подобное форматирование строк
```

### Параметры

`assertion`

Любое логическое утверждение. Если утверждение ложно - сообщение об ошибке записывается в консоль.

`obj1` ... `objN`

Список JavaScript объектов для вывода. Строковое представление этих объектов добавляются в порядке, указанном в списке, и выводятся.

`msg`

Строка JavaScript, содержащая ноль или более строк подстановки.

`subst1` ... `substN`

Объекты JavaScript, которыми нужно заменить строки подстановки в рамках параметра **msg**. Этот параметр даёт дополнительный контроль над форматированием вывода.

Примеры
-------

В следующем примере кода демонстрируется использование объекта JavaScript после утверждения:


```js
const errorMsg = "# не чётное число";
for (let number = 2; number <= 5; number += 1) {
  console.log("# равно " + number);
  console.assert(number % 2 === 0, { number: number, errorMsg: errorMsg });
  // или, при использовании сокращения имён свойств в ECMAScript 2015:
  // console.assert(number % 2 === 0, {number, errorMsg});
}
// output:
// # равно 2
// # равно 3
// Assertion failed: {number: 3, errorMsg: "# не чётное число"}
// # равно 4
// # равно 5
// Assertion failed: {number: 5, errorMsg: "# не чётное число"}
```


Обратите внимание, что хотя строка, содержащая строку подстановки, работает как параметр для `console.log` в Node и многих, если не большинстве, браузерах...
```

console.log('слово %s', 'foo');
// output: слово foo
```


...использование такой строки в настоящее время не работает в качестве параметра для `console.assert` во всех браузерах:


```js
console.assert(false, "слово %s", "foo");
// корректный вывод в Node.js и некоторых браузерах
// (например Firefox v60.0.2):
// Assertion failed: слово foo
// некорректный вывод в некоторых браузерах
// (например Chrome v67.0.3396.87):
// Assertion failed: слово %s foo
```


Смотрите также Вывод текста в консоль в документации `console` для более детальной информации.

Спецификации
------------

| Specification |
| --- |
| Console Standard # assert |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Opera Dragonfly documentation: Console
* MSDN: Using the F12 Tools Console to View Errors and Status
* Chrome Developer Tools: Using the Console