註: This feature is available in Web Workers.

注意在 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


obj1 ... objN
要印出來的 JavaScript 物件名單。 The string representations of each of these objects are appended together in the order listed and output.
包含零個以上的 JavaScript 替代(substitution)字串。
subst1 ... substN
JavaScript objects with which to replace substitution strings within msg. This parameter gives you additional control over the format of the output.

請參見 consoleOutputting 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(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

有關詳細信息,請參閱 console 文檔中的將文本輸出到控制台


Specification Status Comment
Console API
The definition of 'console.assert()' in that specification.
Living Standard 初始定義


BCD tables only load in the browser