• 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 (交互式解释器)

  • 相关阅读:
    关于一个标准的poi下载文件模板 可拿来来直接使用
    关于史上最简单的导出(导出excal)
    关于spring MVC的面试题
    关于响应式布局(pc端访问自适应 手机端访问自适应)
    密码生成器
    关于poi的导出(POI)
    关于MUI一个很实用的前端框架
    (转载)插画版Kubernetes指南(小孩子也能看懂的kubernetes教程)
    (转载)Python tips: 什么是*args和**kwargs?
    python编程中的if __name__ == 'main': 的作用和原理
  • 原文地址:https://www.cnblogs.com/CodeDeath/p/8309113.html
Copyright © 2020-2023  润新知