Like Share Discussion Bookmark Smile

J.J. Huang   2020-01-17   Node.js   瀏覽次數:

Node.js | REPL終端

簡介

REPL表示讀取評估和示範印出循環(Read Eval Print Loop),它代表一個指令輸入和系統在交互模式的輸出響應窗口控製台或Unix/ Linuxshell計算機環境。
Node.js附帶了一個REPL環境,它執行以下期望的任務。

  • Read:讀取用戶的輸入,解析在內存中輸入JavaScript資料結構和存儲。
  • Eval:接受和評估計算資料結構
  • Print:印出結果
  • Loop:循環上面的指令,直到用戶按Ctrl-C兩次。

Node REPL結合Node.js的程式試驗非常有用,用於調試JavaScript程式。

啟動REPL

1
2
3
4
$ node
Welcome to Node.js v12.13.0.
Type ".help" for more information.
>

簡單表達式

1
2
3
4
5
6
7
8
$ node
Welcome to Node.js v12.13.0.
Type ".help" for more information.
> 1 + 3
4
> 1 + ( 2 * 7 ) - 10
5
>

變量使用

你可以使用變量之後存儲值和印出,就像傳統的腳本。
如果不使用var關鍵字接著值存儲在變量和印出。
而如果是使用var關鍵字則值存儲不印出。
你可以使用console.log印出變量()。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ node
Welcome to Node.js v12.13.0.
Type ".help" for more information.
> x = 10
10
> y = 100
100
> x + y
110
> console.log(x);
10
undefined
> var z = 999
undefined
> console.log(z);
999
undefined
>

多行表達

Node REPL支持輸入多行表達式,這就有點類似JavaScript
do-while循環範例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ node
Welcome to Node.js v12.13.0.
Type ".help" for more information.
> var x = 0
undefined
> do {
... x++;
... console.log("x: " + x);
... } while (x < 5);
x: 1
x: 2
x: 3
x: 4
x: 5
undefined
>

...三個點的符號是系統自動生成的,Enter換行後即可。Node會自動檢測是否為連續的表達式。

下劃線變量

你可以使用下劃線_得到最後的結果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
morose@localhost:Temp/Example $ node
Welcome to Node.js v12.13.0.
Type ".help" for more information.
> var x = 10
undefined
> var y = 20
undefined
> x + y
30
> _
30
> console.log(_);
30
undefined
>

REPL 指令

  • ctrl + c:終止當前指令
  • ctrl + c twice:終止Node REPL
  • ctrl + d:終止Node REPL
  • Up/Down Keys:查看指令曆史記錄和修改以前的指令
  • tab Keys:當前指令的列表
  • .help:所有指令的列表
  • .break:退出多行表達式
  • .clear:從多行表達退出
  • .save filename:當前Node REPL會話保存到文件中
  • .load filename:加載文件的內容在當前Node REPL會話

註:以上參考了
Node.js REPL(交互式解释器)
Node.js REPL終端