Was ist „assert“ in JavaScript?
Was bedeutet assert in JavaScript?
Ich habe so etwas gesehen:
assert(function1() && function2() && function3(), "some text");
Und möchte wissen, was die Methode assert() macht.
Antwort #1
Es gibt kein standardmäßiges assert in JavaScript selbst. Vielleicht verwendest du eine Bibliothek, die eines bereitstellt; zum Beispiel, wenn du Node.js verwendest, vielleicht verwendest du das Assertionsmodul. (Browser und andere Umgebungen, die eine Konsole bereitstellen, die die Console API implementiert, bieten console.assert.)
Die übliche Bedeutung einer assert-Funktion besteht darin, einen Fehler auszulösen, wenn der an die Funktion übergebene Ausdruck falsch ist; dies ist Teil des allgemeinen Konzepts der Assertionsprüfung. Normalerweise werden Assertions (wie sie genannt werden) nur in "Test"- oder "Debug"-Builds verwendet und aus dem Produktionscode entfernt.
Angenommen, Sie hätten eine Funktion, die immer einen String akzeptieren sollte. Sie würden wissen wollen, ob jemand diese Funktion mit etwas aufgerufen hat, das kein String war (ohne eine Typüberprüfungsschicht wie TypeScript oder Flow). Also könnten Sie Folgendes tun:
assert(typeof argumentName === "string");
...wo assert einen Fehler auslösen würde, wenn die Bedingung falsch wäre.
Eine sehr einfache Version würde so aussehen:
function assert(condition, message) {
if (!condition) {
throw message || "Assertion failed";
}
}
Noch besser ist es, das Error-Objekt zu verwenden, das den Vorteil hat, einen Stack-Trace und Ähnliches zu sammeln:
function assert(condition, message) {
if (!condition) {
throw new Error(message || "Assertion failed");
}
}
Antwort #2
Wenn Sie einen modernen Browser oder Node.js verwenden, können Sie console.assert(expression, object) verwenden.
Für weitere Informationen:
- Chrome-API-Referenz
- Firefox-Webkonsole
- Firebug-Konsole-API
- IE-Konsole-API
- Opera-Dragonfly
- Nodejs Konsolen-API
Antwort #3
Die anderen Antworten sind gut: Es gibt keine assert-Funktion, die in ECMAScript5 (z. B. JavaScript, das im Wesentlichen überall funktioniert) eingebaut ist, aber einige Browser stellen sie bereit oder haben Add-ons, die diese Funktionalität bieten. Obwohl es wahrscheinlich am besten ist, für diesen Zweck eine gut etablierte/beliebte/gepflegte Bibliothek zu verwenden, könnte für akademische Zwecke eine „armen Manns assert“-Funktion ungefähr so aussehen:
const assert = function(condition, message) {
if (!condition)
throw Error('Assert failed: ' + (message || ''));
};
assert(1 === 1); // Executes without problem
assert(false, 'Expected true');
// Yields 'Error: Assert failed: Expected true' in console
Antwort #4
assert() ist keine native JavaScript-Funktion. Es ist eine benutzerdefinierte Funktion, die jemand erstellt hat. Du musst danach auf deiner Seite oder in deinen Dateien suchen und sie posten, damit jemand helfen kann zu bestimmen, was sie tut.
