--- title: Console.assert() slug: Web/API/console/assert tags: - API - DOM - Debugging - 函式 - 控制台 - 網頁控制台 - 網頁開發 translation_of: Web/API/console/assert ---
如果斷言(assertion)為非(false),主控台會顯示錯誤訊息;如果斷言為是(true),則不發生任何事。
{{AvailableInWorkers}}
注意:在 Node.js 內 console.assert() 方法的實做,與瀏覽器並不相同。
瀏覽器內呼叫 falsy 的 console.assert() 斷言出現 message,但不會中斷程式碼的執行。然而在 Node.js 裡面,falsy 斷言會拋出 AssertionError 錯誤。
console.assert(assertion, obj1 [, obj2, ..., objN]); console.assert(assertion, msg [, subst1, ..., substN]); // c-like message formatting
assertionobj1 ... objNmsgsubst1 ... substNmsg. This parameter gives you additional control over the format of the output.請參見 {{domxref("console")}} 的 Outputting text to the console 以獲取詳細資訊。
以下程式碼示範一個 JavaScript 物件的斷言使用:
const errorMsg = 'the # is not even';
for (let number = 2; number <= 5; number += 1) {
console.log('the # is ' + number);
console.assert(number % 2 === 0, {number: number, errorMsg: errorMsg});
// or, using ES2015 object property shorthand:
// console.assert(number % 2 === 0, {number, errorMsg});
}
// output:
// the # is 2
// the # is 3
// Assertion failed: {number: 3, errorMsg: "the # is not even"}
// the # is 4
// the # is 5
// Assertion failed: {number: 5, errorMsg: "the # is not even"}
請注意,雖然包含替換字符串的字符串在 Node 中用作 console.log 的參數,但很多(如果不是大多數)瀏覽器...
console.log('the word is %s', 'foo');
// output: the word is foo
...在所有瀏覽器中,使用此類字符串目前無法作為console.assert的參數使用:
console.assert(false, 'the word is %s', 'foo'); // correct output in Node (e.g. v8.10.0) and some browsers // (e.g. Firefox v60.0.2): // Assertion failed: the word is foo // incorrect output in some browsers // (e.g. Chrome v67.0.3396.87): // Assertion failed: the word is %s foo
有關詳細信息,請參閱 {{domxref("console")}} 文檔中的將文本輸出到控制台。
| Specification | Status | Comment |
|---|---|---|
| {{SpecName("Console API", "#assert", "console.assert()")}} | {{Spec2("Console API")}} | 初始定義 |
{{Compat("api.Console.assert")}}