console.* API: Daten ausgeben und mehrconsole.log() (stdout)console.error() (stderr)JSON.stringify() ausgebenEs gibt viele Möglichkeiten, JavaScript-Code-Schnipsel schnell auszuführen. In den folgenden Unterabschnitten werden einige davon beschrieben.
Webbrowser haben sogenannte Konsolen: interaktive Befehlszeilen, an die Sie Text über console.log() ausgeben und in denen Sie Code-Schnipsel ausführen können. Wie Sie die Konsole öffnen, unterscheidet sich von Browser zu Browser. Abb. 3 zeigt die Konsole von Google Chrome.
Um herauszufinden, wie Sie die Konsole in Ihrem Webbrowser öffnen, können Sie eine Websuche nach „Konsole «Name-Ihres-Browsers»“ durchführen. Dies sind Seiten für einige häufig verwendete Webbrowser
REPL steht für read-eval-print loop und bedeutet im Grunde Befehlszeile. Um sie zu verwenden, müssen Sie zuerst Node.js von einer Betriebssystem-Befehlszeile über den Befehl node starten. Dann sieht eine Interaktion damit so aus, wie in Abb. 4 dargestellt: Der Text nach > ist die Eingabe des Benutzers; alles andere ist Ausgabe von Node.js.
Lesen: REPL-Interaktionen
Ich demonstriere JavaScript gelegentlich über REPL-Interaktionen. Dann verwende ich auch Größer-als-Zeichen (>), um Eingaben zu markieren – zum Beispiel
> 3 + 5
8Andere Optionen umfassen
Es gibt viele Web-Apps, mit denen Sie mit JavaScript in Webbrowsern experimentieren können – zum Beispiel die REPL von Babel.
Es gibt auch native Apps und IDE-Plugins zum Ausführen von JavaScript.
Konsolen laufen oft im Non-Strict Mode
Im modernen JavaScript wird der meiste Code (z. B. Module) im Strict Mode ausgeführt. Konsolen laufen jedoch oft im Non-Strict Mode. Daher können Sie gelegentlich leicht unterschiedliche Ergebnisse erhalten, wenn Sie eine Konsole verwenden, um Code aus diesem Buch auszuführen.
console.* API: Daten ausgeben und mehrIn Browsern ist die Konsole etwas, das Sie aufrufen können und das normalerweise versteckt ist. Für Node.js ist die Konsole das Terminal, in dem Node.js gerade läuft.
Die vollständige console.* API ist auf den MDN Web Docs und auf der Node.js-Website dokumentiert. Sie ist kein Teil des JavaScript-Sprachstandards, aber viel Funktionalität wird sowohl von Browsern als auch von Node.js unterstützt.
In diesem Kapitel betrachten wir nur die folgenden beiden Methoden zur Ausgabe von Daten („Ausgabe“ bedeutet Anzeige in der Konsole)
console.log()console.error()console.log() (stdout)Es gibt zwei Varianten dieses Vorgangs
console.log(...values: any[]): void
console.log(pattern: string, ...values: any[]): voidDie erste Variante gibt (Textdarstellungen von) Werten auf der Konsole aus
console.log('abc', 123, true);
// Output:
// abc 123 trueAm Ende gibt console.log() immer einen Zeilenumbruch aus. Wenn Sie sie also mit null Argumenten aufrufen, gibt sie nur einen Zeilenumbruch aus.
Die zweite Variante führt eine Zeichenketten-Substitution durch
console.log('Test: %s %j', 123, 'abc');
// Output:
// Test: 123 "abc"Dies sind einige der Direktiven, die Sie für Substitutionen verwenden können
%s konvertiert den entsprechenden Wert in eine Zeichenkette und fügt ihn ein.
console.log('%s %s', 'abc', 123);
// Output:
// abc 123%o fügt eine Zeichenkettendarstellung eines Objekts ein.
console.log('%o', {foo: 123, bar: 'abc'});
// Output:
// { foo: 123, bar: 'abc' }%j konvertiert einen Wert in eine JSON-Zeichenkette und fügt ihn ein.
console.log('%j', {foo: 123, bar: 'abc'});
// Output:
// {"foo":123,"bar":"abc"}%% fügt ein einzelnes % ein.
console.log('%s%%', 99);
// Output:
// 99%console.error() (stderr)console.error() funktioniert genauso wie console.log(), aber was es protokolliert, wird als Fehlerinformation betrachtet. Für Node.js bedeutet dies, dass die Ausgabe unter Unix von stdout nach stderr umgeleitet wird.
JSON.stringify() ausgebenJSON.stringify() ist gelegentlich nützlich, um verschachtelte Objekte auszugeben
console.log(JSON.stringify({first: 'Jane', last: 'Doe'}, null, 2));Ausgabe
{
"first": "Jane",
"last": "Doe"
}