REPL表示讀取評(píng)估和演示打印循環(huán)(Read Eval Print Loop),它代表一個(gè)命令輸入和系統(tǒng)在交互模式的輸出響應(yīng)窗口控制臺(tái)或Unix/ Linux的shell計(jì)算機(jī)環(huán)境。 Node.js附帶了一個(gè)REPL環(huán)境。它執(zhí)行以下期望的任務(wù)。
Read - 讀取用戶(hù)的輸入,解析在內(nèi)存中輸入JavaScript數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ)。
Eval - 接受和評(píng)估計(jì)算數(shù)據(jù)結(jié)構(gòu)
Print - 打印結(jié)果
Loop - 循環(huán)上面的命令,直到用戶(hù)按Ctrl-C兩次。
Node REPL結(jié)合Node.js的代碼試驗(yàn)非常有用,用于調(diào)試JavaScript代碼。
為了簡(jiǎn)化學(xué)習(xí),我們需要易于使用Node.js的REPL環(huán)境在線(xiàn)設(shè)置,在這里你可以練習(xí)Node.js的語(yǔ)法: Launch Node.js REPL Terminal
REPL可以通過(guò)簡(jiǎn)單地運(yùn)行在的shell/控制臺(tái),而如下的任何參數(shù)來(lái)啟動(dòng)。
$ node
會(huì)看到REPL命令提示符>在這里你可以輸入任何Node.js的命令:
$ node >
讓我們嘗試在Node.js的REPL命令提示符下完成簡(jiǎn)單的數(shù)學(xué)計(jì)算:
$ node > 1 + 3 4 > 1 + ( 2 * 3 ) - 4 3 >
您可以使用變量之后存儲(chǔ)值和打印,就像傳統(tǒng)的腳本。 如果不使用var關(guān)鍵字接著值存儲(chǔ)在變量和打印。而如果是使用var關(guān)鍵字則值存儲(chǔ)不打印。您可以使用console.log打印變量()。
$ node
> x = 10
10
> var y = 10
undefined
> x + y
20
> console.log("Hello World")
Hello Workd
undefined
Node REPL支持類(lèi)似于JavaScript的多行表達(dá)。讓我們來(lái)看看以下do-while循環(huán)的操作:
$ 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
>
... 自動(dòng)打開(kāi)自帶括號(hào)后,當(dāng)您按下進(jìn)入。Node自動(dòng)檢查表達(dá)式的連續(xù)性。
您可以使用下劃線(xiàn)_得到最后的結(jié)果:
$ node > var x = 10 undefined > var y = 20 undefined > x + y 30 > var sum = _ undefined > console.log(sum) 30 undefined >
ctrl + c - 終止當(dāng)前命令
ctrl + c twice - 終止Node REPL
ctrl + d - 終止Node REPL
Up/Down Keys - 查看命令歷史記錄和修改以前的命令
tab Keys - 當(dāng)前指令的列表
.help - 所有命令的列表
.break - 退出多行表達(dá)式
.clear - 從多行表達(dá)退出
.save filename - 當(dāng)前Node REPL會(huì)話(huà)保存到文件中
.load filename - 加載文件的內(nèi)容在當(dāng)前Node REPL會(huì)話(huà)
正如上面提到的,你需要按兩次Ctrl + C命令退出Node.js REPL。
$ node > (^C again to quit) >