JavaScript für ungeduldige Programmierer (ES2022-Ausgabe)
Bitte unterstützen Sie dieses Buch: kaufen Sie es oder spenden Sie
(Werbung, bitte nicht blockieren.)

8 Konsolen: interaktive JavaScript-Befehlszeilen



8.1 JavaScript-Code ausprobieren

Es gibt viele Möglichkeiten, JavaScript-Code-Schnipsel schnell auszuführen. In den folgenden Unterabschnitten werden einige davon beschrieben.

8.1.1 Browserkonsolen

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

Figure 3: The console of the web browser “Google Chrome” is open (in the bottom half of window) while visiting a web page.

8.1.2 Die Node.js REPL

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.

Figure 4: Starting and using the Node.js REPL (interactive command line).

  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
8

8.1.3 Andere Optionen

Andere Optionen umfassen

  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.

8.2 Die console.* API: Daten ausgeben und mehr

In 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)

8.2.1 Werte ausgeben: console.log() (stdout)

Es gibt zwei Varianten dieses Vorgangs

console.log(...values: any[]): void
console.log(pattern: string, ...values: any[]): void
8.2.1.1 Mehrere Werte ausgeben

Die erste Variante gibt (Textdarstellungen von) Werten auf der Konsole aus

console.log('abc', 123, true);
// Output:
// abc 123 true

Am Ende gibt console.log() immer einen Zeilenumbruch aus. Wenn Sie sie also mit null Argumenten aufrufen, gibt sie nur einen Zeilenumbruch aus.

8.2.1.2 Eine Zeichenkette mit Substitutionen ausgeben

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

8.2.2 Fehlerinformationen ausgeben: 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.

8.2.3 Verschachtelte Objekte über JSON.stringify() ausgeben

JSON.stringify() ist gelegentlich nützlich, um verschachtelte Objekte auszugeben

console.log(JSON.stringify({first: 'Jane', last: 'Doe'}, null, 2));

Ausgabe

{
  "first": "Jane",
  "last": "Doe"
}