如何使用Node.js REPL

简介: 如何使用Node.js REPL

1、Nodejs REPL

REPL代表Read-Evaluate-Print-Loop,是交互式解释器

node命令是我们用来运行Node.js脚本的命令:

node script.js

如果我们运行node命令而没有任何脚本执行或没有任何参数,我们将启动一个REPL会话:

node

注:REPL代表Read Evaluate Print Loop,它是一个编程语言环境(基本上是一个控制台窗口),它将单个表达式作为用户输入,并在执行后将结果返回到控制台。REPL会话提供了一种快速测试简单JavaScript代码的方便方法。

如果你现在在你的终端上尝试它,会发生这样的事情:

1. node
2. Welcome to Node.js v16.16.0.
3. Type ".help" for more information.
4. >

命令保持空闲模式,等待我们输入某些内容。

简单测试下:

1. > console.log(123)
2. 123
3. undefined

第一个值123是我们告诉控制台打印的输出,然后我们得到undefined,这是运行console.log()的返回值。 Node读取这行代码,对其求值,打印结果,然后返回等待更多的代码行。Node将为我们在REPL中执行的每一段代码循环这三个步骤,直到我们退出会话。这就是REPL得名的原因。

Node自动打印任何一行JavaScript代码的结果,而不需要指示它这样做。例如,键入以下行并按Enter键:

1. > 5 === '5'
2. false
3. >

请注意以上两行的输出差异。Node REPL在执行了undefined之后打印了console.log(),而另一方面,它只打印了5 === '5'的结果。你需要记住,前者只是JavaScript中的一个语句,而后者是一个表达式。

在某些情况下,要测试的代码可能需要多行。例如,假设您要定义一个生成随机数的函数,在REPL会话中输入以下行并按Enter:

1. > function generateRandom() {
2. ... console.log(123)
3. ... }
4. undefined

2、_特殊变量

默认情况下,默认求值器将分配最近 将已求值表达式转换为特殊变量_(下划线)。

1. > generateRandom()
2. 123
3. undefined
4. > _
5. undefined
6. >[1, 2, 3]
7. [1, 2, 3]
8. >_.length
9. 3

3、向上箭头键

如果您按下up箭头键,您将可以访问在当前甚至以前的REPL会话中执行的前几行代码的历史记录。

4、点命令

REPL有一些特殊的命令,都以点.开头。

  • .help:显示点命令帮助
  • .editor:启用编辑器模式,轻松编写多行JavaScript代码。进入此模式后,输入ctrl-D以运行您编写的代码。
  • .break:输入多行表达式时,输入。break命令将中止进一步的输入。与按ctrl-C相同。
  • .clear:将REPL上下文重置为空对象,并清除当前正在输入的任何多行表达式。
  • .load:加载一个JavaScript文件,相对于当前工作目录
  • .save:将您在REPL会话中输入的所有内容保存到文件中(指定文件名)
  • .exit:退出repl(与按Ctrl + C两次相同)

REPL知道您何时键入多行语句,而不需要调用.editor。

例如,如果你开始输入这样的迭代:

[1, 2, 3].forEach(num => {

按enter,REPL将转到以3个点开始的新行,表示您现在可以继续处理该块了。

1. ... console.log(num)
2. ... })

如果在一行的末尾键入.break,多行模式将停止,语句将不会执行。

5、从JavaScript文件运行REPL

我们可以使用repl将REPL导入JavaScript文件中。

const repl = require('repl');

使用repl变量,我们可以执行各种操作。 要启动REPL命令提示符,请键入以下行

repl.start();

在命令行中运行该文件。

node repl.js
> const n = 10

您可以传递一个字符串,显示REPL何时启动。默认值是'>'(后面有一个空格),但我们可以定义自定义提示符。

1. // Unix 风格的提示
2. const local = repl.start('$ ');

您可以在退出REPL时显示一条消息

1. local.on('exit', () => {
2. console.log('exiting repl');
3.   process.exit();
4. });

您可以在退出REPL时显示一条消息

1. import repl from 'repl';
2. 
3. const local = repl.start('$ ');
4. 
5. local.on('exit', () => {
6. console.log('退出 repl ==========');
7.     process.exit();
8. });

打印结果:

1. $ node repl.js
2. $
3. 退出 repl ==========

退出当前交互环境的三种方式:

1、通过快捷键:CTRL + D

2、通过快捷键:CTRL + C (连续按2次)

3、命令行输入:.exit

相关文章
|
3月前
|
存储 JavaScript 前端开发
Node.js REPL(交互式解释器)
Node.js REPL(交互式解释器)
19 1
|
4月前
|
Web App开发 监控 JavaScript
【Node系列】REPL详解
Node.js REPL(Read-Eval-Print Loop)是一个交互式环境,允许用户在命令行中直接输入JavaScript代码并立即看到结果。REPL是Node.js的一个重要组成部分,它提供了一个方便的方式来测试代码片段、快速尝试新功能或进行调试。
49 1
|
存储 JavaScript 前端开发
|
存储 Web App开发 JSON
Node.js系列基础学习----安装,实现Hello World, REPL
Node.js系列基础学习----安装,实现Hello World, REPL
155 0
Node.js系列基础学习----安装,实现Hello World, REPL
|
存储 JavaScript 前端开发
Node.js学习笔记(三、REPL交互式解释器)
Node.js学习笔记(三、REPL交互式解释器)
139 0
Node.js学习笔记(三、REPL交互式解释器)
|
存储 JavaScript 前端开发
Node.js REPL(交互式解释器)
Node.js REPL(交互式解释器) Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境 读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中。
1036 0
|
27天前
|
缓存 JavaScript 安全
2022年最新最详细的安装Node.js以及cnpm(详细图解过程、绝对成功)
这篇文章提供了2022年最新最详细的Node.js和cnpm安装教程,包括步骤图解、全局配置路径、cnpm安装命令、nrm的安装与使用,以及如何管理npm源和测试速度。
2022年最新最详细的安装Node.js以及cnpm(详细图解过程、绝对成功)
|
16天前
|
JavaScript NoSQL 前端开发