Verwendung von Node.js REPL

Der Autor hat Open Internet / Free Speech Fund ausgewählt, um eine Spende im Rahmen von https://do.co/w4do-cta zu erhalten [Write for DOnations] program.

Einführung

Die Read-Eval-Print-Loop (REPL) von Node.j ist eine interaktive Shell, die die Ausdrücke von Node.j verarbeitet. Die Shell * liest * den vom Benutzer eingegebenen JavaScript-Code, wertet das Ergebnis der Interpretation der Codezeile aus, * gibt * das Ergebnis an den Benutzer aus und * wiederholt * den Vorgang, bis der Benutzer das Beenden signalisiert.

Die REPL wird mit jeder Node.js-Installation mitgeliefert und ermöglicht Ihnen das schnelle Testen und Durchsuchen von JavaScript-Code in der Node-Umgebung, ohne ihn in einer Datei speichern zu müssen.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie:

Schritt 1 - Starten und Stoppen des REPL

Wenn Sie "+ node " installiert haben, haben Sie auch die Node.js REPL. Um es zu starten, geben Sie einfach " node +" in Ihre Kommandozeilen-Shell ein:

node

Dies führt zur REPL-Eingabeaufforderung:

>

Das Symbol "+> +" zeigt an, dass Sie JavaScript-Code eingeben können, um ihn sofort auszuwerten.

Versuchen Sie beispielsweise, zwei Zahlen in die REPL einzufügen, indem Sie Folgendes eingeben:

> 2 + 2

Wenn Sie + ENTER + drücken, wertet die REPL den Ausdruck aus und gibt Folgendes zurück:

4

Um die REPL zu beenden, können Sie "+ .exit " eingeben oder " CTRL + D " einmal oder " CTRL + C +" zweimal drücken, um zur Shell-Eingabeaufforderung zurückzukehren.

Schauen wir uns an, wie Sie mithilfe von REPL einfachen JavaScript-Code ausführen können, wenn Sie nicht mehr im Weg sind und starten oder anhalten.

Schritt 2 - Ausführen von Code in Node.js REPL

Mit REPL können Sie schnell JavaScript-Code testen, ohne eine Datei erstellen zu müssen. Nahezu jeder gültige JavaScript- oder Node.js-Ausdruck kann in der REPL ausgeführt werden.

Im vorherigen Schritt haben Sie bereits die Addition von zwei Zahlen ausprobiert. Versuchen wir nun die Division. Starten Sie dazu einen neuen REPL:

node

Geben Sie in der Eingabeaufforderung Folgendes ein:

> 10 / 5

Drücken Sie + ENTER + und die Ausgabe wird erwartungsgemäß + 2 + lauten:

2

Der REPL kann auch Operationen an Strings verarbeiten. Concatenate die folgenden Zeichenfolgen in Ihrer REPL durch Eingabe von:

> "Hello " + "World"

Drücken Sie erneut "+ ENTER +", und der Zeichenfolgenausdruck wird ausgewertet:

'Hello World'

Funktionen aufrufen

Beim Schreiben von Node.js-Code werden Nachrichten normalerweise über die globale Methode + console.log + oder eine ähnliche https://www.digitalocean.com/community/tutorials/how-to-define-functions-in-javascript gedruckt [Funktion]. Geben Sie an der Eingabeaufforderung Folgendes ein:

> console.log("Hi")

Drücken Sie + ENTER +, um folgende Ausgabe zu erhalten:

Hi
undefined

Das erste Ergebnis ist die Ausgabe von + console.log, die eine Nachricht an den Stream` + stdout` (den Bildschirm) ausgibt. Da "+ console.log " eine Zeichenfolge ausgibt, anstatt eine Zeichenfolge zurückzugeben, wird die Nachricht ohne Anführungszeichen angezeigt. Das " undefined +" ist der Rückgabewert der Funktion.

Variablen erstellen

Selten arbeiten Sie nur mit Literalen in JavaScript. Das Erstellen einer Variablen in der REPL funktioniert genauso wie das Arbeiten mit + .js-Dateien. Geben Sie an der Eingabeaufforderung Folgendes ein:

> let age = 30

Durch Drücken von + ENTER + erhalten Sie:

undefined

Wie zuvor ist bei + console.log der Rückgabewert dieses Befehls` + undefined`. Die Variable "+ age " bleibt solange verfügbar, bis Sie die REPL-Sitzung verlassen. Zum Beispiel können Sie " age +" mit zwei multiplizieren. Geben Sie an der Eingabeaufforderung Folgendes ein und drücken Sie die Eingabetaste:

> age * 2

Das Ergebnis ist:

60

Da die REPL Werte zurückgibt, müssen Sie nicht "+ console.log +" oder ähnliche Funktionen verwenden, um die Ausgabe auf dem Bildschirm zu sehen. Standardmäßig wird jeder zurückgegebene Wert auf dem Bildschirm angezeigt.

Mehrzeilige Blöcke

Mehrzeilige Codeblöcke werden ebenfalls unterstützt. Beispielsweise können Sie eine Funktion erstellen, die einer bestimmten Zahl 3 hinzufügt. Starten Sie die Funktion, indem Sie Folgendes eingeben:

> const add3 = (num) => {

Durch Drücken von "+ ENTER +" wird die Eingabeaufforderung folgendermaßen geändert:

...

Die REPL hat eine offene geschweifte Klammer festgestellt und geht daher davon aus, dass Sie mehr als eine Codezeile schreiben, die eingerückt werden muss. Um das Lesen zu erleichtern, fügt die REPL 3 Punkte und ein Leerzeichen in die nächste Zeile ein, sodass der folgende Code eingerückt zu sein scheint.

Geben Sie die zweite und dritte Zeile der Funktion nacheinander ein und drücken Sie nacheinander die Eingabetaste:

... return num + 3;
... }

Durch Drücken von "+ ENTER" nach der schließenden geschweiften Klammer wird ein "+ undefined" angezeigt, was der "Rückgabewert" der Funktionszuweisung zu einer Variablen ist. Die Eingabeaufforderung + …​ + ist jetzt weg und die Eingabeaufforderung +> + gibt Folgendes zurück:

undefined
>

Rufen Sie nun + add3 () + für einen Wert auf:

> add3(10)

Wie erwartet lautet die Ausgabe:

13

Mit REPL können Sie JavaScript-Code ausprobieren, bevor Sie ihn in Ihre Programme aufnehmen. Die REPL enthält auch einige praktische Verknüpfungen, um diesen Vorgang zu vereinfachen.

Schritt 3 - REPL Shortcuts beherrschen

Der REPL bietet Verknüpfungen, um die Codierungszeit nach Möglichkeit zu verkürzen. Es speichert eine Historie aller eingegebenen Befehle und ermöglicht es uns, diese zu durchlaufen und gegebenenfalls einen Befehl zu wiederholen.

Geben Sie als Beispiel die folgende Zeichenfolge ein:

"The answer to life the universe and everything is 32"

Das führt zu:

'The answer to life the universe and everything is 32'

Wenn Sie die Zeichenfolge bearbeiten und "32" in "42" ändern möchten, verwenden Sie an der Eingabeaufforderung die Pfeiltaste "+ UP +", um zum vorherigen Befehl zurückzukehren:

> "The answer to life the universe and everything is 32"

Bewegen Sie den Cursor nach links, löschen Sie + 3 +, geben Sie + 4 + ein und drücken Sie + ENTER + erneut:

'The answer to life the universe and everything is 42'

Drücken Sie weiterhin die Pfeiltaste "+ NACH OBEN" und Sie werden weiter durch Ihren Verlauf blättern, bis der erste Befehl in der aktuellen REPL-Sitzung verwendet wird. Im Gegensatz dazu wird durch Drücken von + DOWN + zu den neueren Befehlen im Verlauf iteriert.

Wenn Sie mit dem Manövrieren Ihres Befehlsverlaufs fertig sind, drücken Sie wiederholt + DOWN +, bis Sie Ihren letzten Befehlsverlauf erschöpft haben und wieder die Eingabeaufforderung sehen.

Verwenden Sie den Unterstrich, um schnell den zuletzt ausgewerteten Wert zu erhalten. Geben Sie an der Eingabeaufforderung "+ _ " ein und drücken Sie " ENTER":

> _

Die zuvor eingegebene Zeichenfolge wird erneut angezeigt:

'The answer to life the universe and everything is 42'

Die REPL enthält auch eine automatische Vervollständigung für Funktionen, Variablen und Schlüsselwörter. Wenn Sie die Quadratwurzel einer Zahl mit der Funktion + Math.sqrt + ermitteln möchten, geben Sie die ersten Buchstaben wie folgt ein:

> Math.sq

Drücken Sie dann die + TAB + Taste und die REPL wird die Funktion automatisch vervollständigen:

> Math.sqrt

Wenn es mehrere Möglichkeiten zur automatischen Vervollständigung gibt, werden Sie aufgefordert, alle verfügbaren Optionen anzugeben. Geben Sie als Beispiel Folgendes ein:

> Math.

Und drücken Sie zweimal + TAB +. Sie werden mit den möglichen Autovervollständigungen begrüßt:

> Math.
Math.__defineGetter__      Math.__defineSetter__      Math.__lookupGetter__
Math.__lookupSetter__      Math.__proto__             Math.constructor
Math.hasOwnProperty        Math.isPrototypeOf         Math.propertyIsEnumerable
Math.toLocaleString        Math.toString              Math.valueOf

Math.E                     Math.LN10                  Math.LN2
Math.LOG10E                Math.LOG2E                 Math.PI
Math.SQRT1_2               Math.SQRT2                 Math.abs
Math.acos                  Math.acosh                 Math.asin
Math.asinh                 Math.atan                  Math.atan2
Math.atanh                 Math.cbrt                  Math.ceil
Math.clz32                 Math.cos                   Math.cosh
Math.exp                   Math.expm1                 Math.floor
Math.fround                Math.hypot                 Math.imul
Math.log                   Math.log10                 Math.log1p
Math.log2                  Math.max                   Math.min
Math.pow                   Math.random                Math.round
Math.sign                  Math.sin                   Math.sinh
Math.sqrt                  Math.tan                   Math.tanh
Math.trunc

Abhängig von der Bildschirmgröße Ihrer Shell wird die Ausgabe möglicherweise mit einer unterschiedlichen Anzahl von Zeilen und Spalten angezeigt. Dies ist eine Liste aller Funktionen und Eigenschaften, die im + Math + - Modul verfügbar sind.

Drücken Sie "+ STRG + C +", um zu einer neuen Zeile in der Eingabeaufforderung zu gelangen, ohne die aktuelle Zeile auszuführen.

Wenn Sie die REPL-Verknüpfungen kennen, arbeiten Sie effizienter. Es gibt jedoch noch eine andere Möglichkeit, mit der REPL die Produktivität erhöht - die REPL-Befehle.

Schritt 4 - Verwenden von REPL-Befehlen

Die REPL verfügt über bestimmte Schlüsselwörter, mit deren Hilfe das Verhalten gesteuert werden kann. Jeder Befehl beginnt mit einem Punkt "+. +".

.Hilfe

Verwenden Sie den Befehl "+ .help", um alle verfügbaren Befehle aufzulisten:

> .help

Es gibt nicht viele, aber sie sind nützlich, um Dinge in der REPL zu erledigen:

.break    Sometimes you get stuck, this gets you out
.clear    Alias for .break
.editor   Enter editor mode
.exit     Exit the repl
.help     Print this help message
.load     Load JS from a file into the REPL session
.save     Save all evaluated commands in this REPL session to a file

Press ^C to abort current expression, ^D to exit the repl

Wenn Sie einen Befehl einmal vergessen, können Sie immer auf "+ .help +" verweisen, um zu sehen, was er bewirkt.

.bruch / .klar

Mit "+ .break " oder " .clear " können Sie einen mehrzeiligen Ausdruck ganz einfach verlassen. Beginnen Sie beispielsweise eine " for" -Schleife wie folgt:

> for (let i = 0; i < 100000000; i++) {

Verwenden Sie zum Verlassen der Eingabe weiterer Zeilen anstelle der Eingabe der nächsten Zeile den Befehl + .break + oder + .clear +, um die Eingabe zu unterbrechen:

... .break

Sie sehen eine neue Eingabeaufforderung:

>

Die REPL springt in eine neue Zeile, ohne einen Code auszuführen, ähnlich wie beim Drücken von + CTRL + C +.

.save und .load

Der Befehl + .save + speichert den gesamten Code, den Sie seit dem Starten von REPL ausgeführt haben, in einer Datei. Der Befehl + .load + führt den gesamten JavaScript-Code aus einer Datei in der REPL aus.

Beenden Sie die Sitzung mit dem Befehl "+ .exit " oder mit der Tastenkombination " STRG + D ". Starten Sie nun eine neue REPL mit ` node +`. Jetzt wird nur der Code gespeichert, den Sie gerade schreiben.

Erstellen Sie ein Array mit Früchten:

> fruits = ['banana', 'apple', 'mango']

In der nächsten Zeile zeigt die REPL Folgendes an:

[ 'banana', 'apple', 'mango' ]

Speichern Sie diese Variable in einer neuen Datei, + fruits.js +:

> .save fruits.js

Wir werden mit der Bestätigung begrüßt:

Session saved to: fruits.js

Die Datei wird in demselben Verzeichnis gespeichert, in dem Sie Node.js REPL geöffnet haben. Wenn Sie beispielsweise Node.js REPL in Ihrem Ausgangsverzeichnis geöffnet haben, wird Ihre Datei in Ihrem Ausgangsverzeichnis gespeichert.

Beenden Sie die Sitzung und starten Sie eine neue REPL mit + node +. Laden Sie an der Eingabeaufforderung die Datei + fruits.js +, indem Sie Folgendes eingeben:

> .load fruits.js

Das führt zu:

fruits = ['banana', 'apple', 'mango']

[ 'banana', 'apple', 'mango' ]

Der Befehl + .load + liest jede Codezeile und führt sie wie von einem JavaScript-Interpreter erwartet aus. Sie können jetzt die Variable "+ fruits +" so verwenden, als ob sie in der aktuellen Sitzung jederzeit verfügbar wäre.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

> fruits[1]

Die REPL gibt aus:

'apple'

Mit dem Befehl + .load + können Sie jede beliebige JavaScript-Datei laden, nicht nur die von Ihnen gespeicherten Elemente. Lassen Sie uns dies schnell demonstrieren, indem Sie Ihren bevorzugten Code-Editor oder "+ nano ", einen Befehlszeilen-Editor, öffnen und eine neue Datei mit dem Namen " peanuts.js +" erstellen:

nano peanuts.js

Nachdem die Datei geöffnet ist, geben Sie Folgendes ein:

console.log('I love peanuts!');

Speichern und beenden Sie nano mit + STRG + X +.

Starten Sie in demselben Verzeichnis, in dem Sie "+ peanuts.js " gespeichert haben, die REPL von "Node.js" mit " node ". Lade ` peanuts.js +` in deine Session:

> .load peanuts.js

Der Befehl + .load + führt die einzelne Anweisung + console + aus und zeigt die folgende Ausgabe an:

console.log('I love peanuts!');

I love peanuts!
undefined
>

Wenn Ihre REPL-Nutzung länger als erwartet dauert oder Sie der Meinung sind, dass Sie einen interessanten Codeausschnitt haben, den Sie weitergeben oder genauer untersuchen sollten, können Sie mit den Befehlen "+ .save " und " .load +" beide Ziele erreichen.

Fazit

Die REPL ist eine interaktive Umgebung, mit der Sie JavaScript-Code ausführen können, ohne ihn zuerst in eine Datei schreiben zu müssen.

Mit REPL können Sie JavaScript-Code aus anderen Lernprogrammen ausprobieren: