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 после утверждения:

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 во всех браузерах:

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

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

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

Спецификации Статус Комментарий
Console API
Определение 'console.assert()' в этой спецификации.
Живой стандарт Первоначальное определение

Поддержка браузерами

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
assertChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 28IE Полная поддержка 8Opera Полная поддержка 11Safari Полная поддержка 4WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 28Opera Android Полная поддержка 11Safari iOS Полная поддержка 3.2Samsung Internet Android Полная поддержка 1.0

Легенда

Полная поддержка  
Полная поддержка

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