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 после утверждения:
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 Standard # assert |
Совместимость с браузерами
BCD tables only load in the browser