Node.js 文档 repl (交互式解释器)

名词解释

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 回车

  1. 简单计算(输入简单计算表达式,回车即可即刻看到结果)
node
> 1+3
> 4
  1. 使用变量存储数据
变量声明需使用 var 关键字,若没有输入 var 关键字,则会直接打印出来
使用 var 关键字声明的变量在需要时可以使用 console.log() 输出变量
node
> x=10
> 10
> var x=10
> undefined
> x+20
> 30
> console.log(x);
> 10
> undefined
  1. 多行表达式
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 中任意一种,效果相同
  1. 获取运算结果
使用下划线 _ 获取上一个表达式的运算结果
node
> var x=10;
> undefined
> x+5
> 15
> _
> 15
> var s = _;
> undefined
> s
> 15

升阶应用

  1. 自定义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

奇思妙用

  1. 开发时在交互界面下查看测试结果(不方便或未写测试用例时)
  2. 快速演示程序,而不需要录入一系列初始变量
  3. 开发基于Node.js的sheel程序

参考文档 Node.js 文档 repl (交互式解释器)

原文地址:https://www.cnblogs.com/CodeDeath/p/8309113.html