This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

console.assert()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨июль 2015 г.⁩.

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

Метод 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
# assert

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

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