名词解释
Node.js REPL(Read Eval Print Loop) 交互式解释器,类似于window系统终端(CMD)或 Unix/Linux shell,主要功能便是 读取用户输入,执行命令,打印结果
所以 REPL 可以很好的调试javascript代码,在一些应用场景中犹如利器,如:需要即可得知计算结果的时候
常用命令
Ctrl + c
- 退出当前终端
Ctrl + c
连续按两次 - 退出当前Node REPL
Ctrl + d
- 退出 Node REPL
向上/向下键
- 查看输入的历史命令
tab
- 列出当前命令(当在空白行按下时,显示全局和本地作用域内的变量。当在输入时按下,显示相关的自动补全选项)
.help
- 列出使用命令
.break
- 退出多行表达式
.clear
- 退出多行表达式
.save filename
- 保存当前 Node REPL 会话到指定文件,其中filename为绝对路径
.load filename
- 载入当前 Node REPL 会话的文件内容,其中filename为绝对路径
.editor
- 进入编辑模式( Ctrl+D
完成 , Ctrl+C
取消)
基本应用
打开cmd或shell窗口,输入 node 回车
- 简单计算(输入简单计算表达式,回车即可即刻看到结果)
node
> 1+3
> 4
- 使用变量存储数据
变量声明需使用 var
关键字,若没有输入 var
关键字,则会直接打印出来
使用 var
关键字声明的变量在需要时可以使用 console.log()
输出变量
node
> x=10
> 10
> var x=10
> undefined
> x+20
> 30
> console.log(x);
> 10
> undefined
- 多行表达式
node
> var x=0;
> undefined
> do{
> ... x++;
> ... console.log(x);
> ... }while(x<5);
> 1
> 2
> 3
> 4
> 5
> undefined
...三个点的符号是系统生成的, Node依此检测是否为连续的表达式.
打印变量 可以使用 console.log / console.error / console.info / console.warn 中任意一种,效果相同
- 获取运算结果
使用下划线 _
获取上一个表达式的运算结果
node
> var x=10;
> undefined
> x+5
> 15
> _
> 15
> var s = _;
> undefined
> s
> 15
升阶应用
- 自定义repl解释器输出函数(使其所有输入都转换成大写形式输出)
const repl = require('repl');
const r = repl.start({ prompt: '> ', eval: myEval, writer: myWriter });
function myEval(cmd, context, filename, callback) {
callback(null, cmd);
}
function myWriter(output) {
return output.toUpperCase();
}
保存以上代码到文件(repl-upper.js)中. 然后像运行其他node程序一样运行这个文件
node repl-upper.js
> abc
> ABC
奇思妙用
- 开发时在交互界面下查看测试结果(不方便或未写测试用例时)
- 快速演示程序,而不需要录入一系列初始变量
- 开发基于Node.js的sheel程序