This page was translated from English by the community. Learn more and join the MDN Web Docs community.
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 после утверждения:
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 для более детальной информации.
Спецификации
| Specification |
|---|
| Console> # assert> |
Совместимость с браузерами
Enable JavaScript to view this browser compatibility table.