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 July 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 Standard
# assert

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

BCD tables only load in the browser

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