REPL(Read Eval Print Loop,交互式解释器)是一个处理 Node.js 表达式的交互式 shell,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。
REPL 与 Node.js 安装捆绑在一起,并执行以下所需的任务:
- Read − 读取用户输入的 JavaScript 代码
- Eval − 解释代码行的结果
- Print− 将结果打印给用户
- Loop − 循环执行上述操作,直到用户发出退出信号(按下两次 Ctrl + C)。
基本用法
安装完 Node,您就拥有了 REPL,在命令行输入 node
进入 REPL:
node
您可以计算一些简单的表达式:
> 'Hello' + ' Node'
'Hello Node'
> console.log('Hi')
Hi
> 10 * 2
20
> var x = 10
undefined
> var y = 20
undefined
> x + y
30
下面重点介绍一下,它的几个重要的命令。
REPL 命令
它们都以点(.
)开头,其中一个便是 .help
,我们在命令行中输入它,以查看其它可用命令:
-
.break
— 用于中断正在执行的操作 -
.clear
—.break
别名 -
.editor
— 进入编辑模式 -
.exit
— 退出 REPL -
.help
— 列出所有可用的命令 -
.save
— 将 JS 从文件加载到 REPL 会话中 -
.load
— 将 REPL 会话中的所有求值命令保存到一个文件中
这里不提供示例,您可以尝试一下它们,都是一些简单的命令。
关于 REPL 的一些用法请查阅官网 repl 章节或 How To Use the Node.js REPL。
REPL 中下划线变量
使用 _
获取最后一个结果。
> var x = 10
undefined
> var y = 20
undefined
> x + y
30
> _
30
创建自定义 Node.js REPL
Node 还提供了一个 REPL 模块 来实现与内置 REPL 同样的效果。
您只需几行 JavaScript 代码就可以创建自定义 REPL:
const repl = require('repl')
// 定义可用的方法和状态
const state = {
print() {
console.log("That's awesome!")
}
}
const myRepl = repl.start("Welcome to lio-zero repl > ")
Object.assign(myRepl.context, state)
最后
它很方便,我们可以使用它来计算一些简单的表达式,但我相信,您基本上不会用到 REPL 吧!
有其他的用法可以讨论讨论!!!
本文首发 blog,如果喜欢或者有所启发,欢迎 Star
,对作者也是一种鼓励。