10.如何使用 Node.js REPL

如何使用 Node.js REPL

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

node script.js

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

node

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

如果您现在在终端中尝试,会发生以下情况:

node

该命令保持空闲模式并等待我们输入内容。

提示:如果您不确定如何打开终端,请搜索“如何在 <your-operating-system> 上打开终端”。

REPL 正在等待我们输入一些 JavaScript 代码,更准确地说。

从简单开始并输入

> console.log('test')
test
undefined
> 

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

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

> 5 === '5'
false
>

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

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

function generateRandom() {
...

Node REPL 足够智能,可以确定您还没有完成编写代码,它会进入多行模式,让您输入更多代码。 现在完成你的函数定义并按回车:

function generateRandom() {
...return Math.random()
}
undefined

Node 将退出多行模式,并打印 undefined,因为没有返回值。 这种多线模式是有限的。 Node 在 REPL 中提供了一个更具特色的编辑器。 我们在下面的点命令下讨论它。

使用tab自动补全

REPL 最酷的地方在于它是交互式的。

在您编写代码时,如果您按下 tab 键,REPL 将尝试自动完成您编写的内容以匹配您已经定义或预定义的变量。

探索 JavaScript 对象

尝试输入 JavaScript 类的名称,例如“Number”,添加一个点并按“tab”。

REPL 将打印您可以在该类上访问的所有属性和方法:

Pressing tab reveals object properties

探索全局对象

你可以通过输入global.并按tab来检查你可以访问的全局变量:

Globals

_ 特殊变量

如果在某些代码之后键入_,那将打印最后一次操作的结果。

向上箭头键

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

.命令

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 => {

然后你按下回车键,REPL 将转到一个以 3 个点开头的新行,表示你现在可以继续在该块上工作。

... console.log(num)
... })

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

从 JavaScript 文件运行 REPL

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

const repl = require('repl');

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

const local = repl.start(prompt);

repl.start() 启动 REPL 环境,提示符是一个字符串,它接受显示 REPL 何时启动的提示符。 默认为’>',但我们可以定义自定义提示。

在命令行中运行该文件。

node repl.js
>const n = 10

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

local.on('exit', () => {
  console.log('exiting repl');
  process.exit();
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值