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.
如果斷言(assertion)為非(false),主控台會顯示錯誤訊息;如果斷言為是(true),則不發生任何事。
備註: 此功能可在 Web Worker 中使用。
備註:在 Node.js 內 console.assert()
方法的實做,與瀏覽器並不相同。瀏覽器內呼叫 falsy 的 console.assert()
斷言出現 message
,但不會中斷程式碼的執行。然而在 Node.js 裡面,falsy 斷言會拋出 AssertionError
錯誤。
語法
assert(assertion, obj1)
assert(assertion, obj1, obj2)
assert(assertion, obj1, obj2, /* …, */ objN)
assert(assertion, msg)
assert(assertion, msg, subst1)
assert(assertion, msg, subst1, /* …, */ substN)
參數
assertion
-
布林表達式。如果斷言為非,訊息會出現在主控台上。
obj1
...objN
-
要印出來的 JavaScript 物件名單。 The string representations of each of these objects are appended together in the order listed and output.
msg
-
包含零個以上的 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.
請參見 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
規範
Specification |
---|
Console Standard # assert |
瀏覽器相容性
BCD tables only load in the browser