Node.js REPL(インタラクティブインタプリタ)

Node.js には組み込みの REPL(Read-Eval-Print Loop)が用意されています。これは、ターミナルで JavaScript コードを実行できるインタラクティブなプログラミング環境です。

REPL という名前は、その主要な操作である読み取り(Read)、実行(Eval)、出力(Print)、ループ(Loop)に由来しています。

Node にはインタラクティブインタプリタが標準で付属しており、以下のタスクを実行できます。

  • 読み取り(Read)- ユーザー入力を読み取り、入力された Javascript データ構造を解析してメモリに保存します。

  • 実行(Eval)- 入力されたデータ構造を実行します

  • 出力(Print)- 結果を出力します

  • ループ(Loop)- 上記の手順を繰り返します。ユーザーがctrl-cを2回押して終了します。

REPL では JavaScript コードを直接入力して即座に実行でき、コードスニペットを素早く検証できます。

REPL は、簡単なロジックのテストやデバッグ、新しい構文や Node.js API の試用に適しています。

REPL の学習を始める

以下のコマンドを入力することで、Node のターミナルを起動できます。

node

実行すると、以下のように表示されます。

# node
Welcome to Node.js v20.1.0.
Type ".help" for more information.
> 

このとき、>の後ろに簡単な式を入力し、Enter キーを押すと結果を計算できます。

簡単な式の演算

次に、Node.js REPL のコマンドラインウィンドウで簡単な数学演算を実行してみましょう。

$ node
> 1 +4
5
> 5 / 2
2.5
> 3 * 6
18
> 4 - 1
3
> 1 + ( 2 * 3 ) - 4
3
>

変数の使用

データを変数に格納し、必要なときに使用できます。

変数の宣言にはvarキーワードを使用する必要があります。var キーワードを使用しない場合、変数は直接出力されます。

`var` キーワードをvar使用した変数は、console.log() を使用して出力できます。

$ node
> x = 10
10
> var y = 10
undefined
> x + y
20
> console.log("Hello World")
Hello World
undefined
> console.log("www.example.com")
www.example.com
undefined

複数行の式

Node REPL は複数行の式の入力をサポートしています。これは JavaScript に似ています。次に、do-while ループを実行してみましょう。

$ node
> var x = 0
undefined
> do {
... x++;
... console.log("x: " + x);
... } while ( x < 5 );
x: 1
x: 2
x: 3
x: 4
x: 5
undefined
>

...3つの点の記号はシステムが自動生成するもので、Enter キーで改行すると表示されます。Node は式が連続しているかどうかを自動的に検出します。

アンダースコア(_)変数

アンダースコア(_)を使用して、直前の式の演算結果を取得できます。

$ node
> var x = 10
undefined
> var y = 20
undefined
> x + y
30
> var sum = _
undefined
> console.log(sum)
30
undefined
>

REPL コマンド

Node.js REPL の一般的なコマンドとショートカットキーの一覧表:

コマンド/ショートカットキー説明
.helpREPL で利用可能なすべてのコマンドとその説明を表示します。
.exitREPL セッションを終了します。これは、該当キーを押すのと同じです。Ctrl + D。
.save <filename>現在の REPL セッションを指定されたファイルに保存します。
.load <filename>指定されたファイルからコードを読み込み、REPL で実行します。
.break複数行式の入力モードを終了し、単行入力モードに戻ります。
.clearREPL のコンテキストをリセットします。すべての変数と状態をクリアすることに相当します。
Ctrl + C現在の入力を強制終了するか、コマンドを終了します。2回押すと REPL セッションを終了します。
Ctrl + DREPL セッションを終了します。これは、該当コマンドに相当します。.exit。
Ctrl + L画面をクリアします。これは、ターミナルで該当コマンドを入力するのと似ています。clear。
方向キー(↑/↓)入力履歴を参照し、以前に入力したコマンドを表示して再実行します。
Tab入力を自動補完し、可能なオプションや補完コマンドを表示します。
_直前の式の結果にアクセスするために使用します。
Ctrl + R履歴の逆方向検索に入り、以前に入力したコマンドを検索します。
Ctrl + U現在の行のカーソル位置から行頭までのすべての内容を削除します。
Ctrl + K現在の行のカーソル位置から行末までのすべての内容を削除します。
Ctrl + Aカーソルを行頭に移動します。
Ctrl + Eカーソルを行末に移動します。
Ctrl + Bカーソルを1文字後方に移動します。
Ctrl + Fカーソルを1文字前方に移動します。
Ctrl + N次の履歴を表示します(下矢印キー ↓ と同じ)。
Ctrl + P前の履歴を表示します(上矢印キー ↑ と同じ)。
Ctrl + ZREPL セッションを一時停止してバックグラウンドに置きます(一部のシステムで使用可能)。

REPL の停止

前述したように、ctrl + cキーを2回押すと REPL を終了できます。

$ node
>
(^C again to quit)
>

REPL の高度な機能

  • 自動補完:コードの一部を入力してTabを押すと、REPL は補完を試みるか、可能なオプションを表示します。
  • 結果のキャッシュ:REPL は前回の実行結果を自動的に特別な変数_に保存します。例:
    > 5 + 5
    10
    > _ * 2
    20
    

Gif 実例デモ

次に、Gif 画像を使って実例操作をデモンストレーションします。

その他の拡張機能