Node.js REPL 终端
Node.js - REPL 终端
Section titled “Node.js - REPL 终端”REPL 是 Read-Eval-Print Loop(读取-求值-打印-循环) 的缩写。它是一个交互式编程环境,就像命令行提示符或 shell 一样,你可以在其中输入命令,立即得到求值结果,查看输出,然后重复此过程。Node.js 内置了自己的 REPL 环境,这对于试验 JavaScript 代码、测试 Node.js 功能、调试小型代码片段以及学习非常有帮助。
REPL 循环包含以下步骤:
- 读取 (Read):读取用户的输入(一行 JavaScript 代码)。
- 求值 (Eval):使用 Node.js 运行时对输入的代码进行求值。
- 打印 (Print):将求值结果打印到控制台 (console)。
- 循环 (Loop):等待用户输入下一行。此过程持续进行,直到用户退出 REPL(通常通过按两次
Ctrl+C或输入.exit)。
启动 REPL
Section titled “启动 REPL”要启动 Node.js REPL,只需打开你的终端或命令提示符,输入 node,然后按回车:
$ node你将看到 REPL 提示符 (>),表示它已准备好接受你的 JavaScript 命令:
Welcome to Node.js vXX.X.X. (Current Node version will be displayed)Type ".help" for more information.>你可以立即开始输入 JavaScript 表达式:
> 5 + 712> 'Hello' + ' ' + 'REPL!''Hello REPL!'> 10 * (3 + 4)70> Math.random()0.123456789... (a random number)你可以像在脚本中一样声明和使用变量。使用 const 或 let(或 var,现在较少使用)来声明变量。如果你在赋值时没有使用 const/let/var,Node.js 在 REPL 环境中会隐式地将其视为全局变量赋值,并打印赋给的值。使用 const/let/var 通常会在声明行本身打印 undefined。
> const message = 'Welcome'undefined> let count = 10undefined> count * 550> message + ' to Node.js REPL''Welcome to Node.js REPL'> // 隐式全局赋值(不推荐)> myVar = 100100> myVar / 425> console.log('logging 也可以:', count)Logging works too: 10undefinedREPL 支持多行表达式。当你开始一个块(例如,以 {、( 或 [ 开头)或一行结束后期望有更多输入时,提示符会变为 ...,表示正在等待更多输入行。
> function greet(name) {... console.log(`Hello, ${name}!`);... }undefined> greet('Node User')Hello, Node User!undefined>> let numbers = [1, 2, 3];undefined> numbers.map(n => {... return n * 2;... });[ 2, 4, 6 ]>... 会持续出现,直到你关闭块或输入一个完整的语句。
下划线 (_) 变量
Section titled “下划线 (_) 变量”特殊变量 _(下划线)保存着上一个成功求值的表达式的结果。
> 10 + 1525> _ * 2 // 使用上一个结果 (25)50> const names = ['Alice', 'Bob']undefined> names[ 'Alice', 'Bob' ]> _[1] // 使用上一个结果(数组)来访问 'Bob''Bob'>REPL 命令
Section titled “REPL 命令”REPL 有一些特殊命令,都以点 (.) 开头:
.help:显示帮助消息,列出可用的点命令。.break:(或按一次Ctrl+C)中止当前的多行表达式输入。.clear:将 REPL 上下文重置为空对象并清除任何多行表达式。效果与.break相同。.exit:(或按两次Ctrl+C,或按Ctrl+D)退出 Node.js REPL。.save <filename>:将当前 REPL 会话历史记录保存到文件。.load <filename>:从文件加载 JavaScript 代码到当前的 REPL 会话。.editor:进入编辑器模式,用于编写更长的代码块。Ctrl+D完成输入,Ctrl+C取消。
其他有用的按键:
Section titled “其他有用的按键:”上/下方向键:浏览命令历史记录。Tab 键:自动补全变量、关键词和对象属性。Ctrl+L:清除终端屏幕(类似于console.clear())。
停止 REPL
Section titled “停止 REPL”如前所述,你可以通过以下方式退出 REPL:
- 输入
.exit并按回车。 - 按两次
Ctrl+C。 - 按
Ctrl+D(在空行上)。
> // 按 Ctrl+C(To exit, press Ctrl+C again or Ctrl+D or type .exit)> // 再按一次 Ctrl+C$