如何使用Node.js REPL

229 阅读2分钟

REPL是Read-Evaluate-Print-Loop的缩写,它是一种快速探索Node功能的好方法

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

如果我们省略文件名,我们就在REPL模式下使用它。

如果你现在在你的终端尝试一下,会发生这样的情况。

该命令保持在空闲模式,等待我们输入什么。

提示:如果你不确定如何打开你的终端,谷歌 "如何打开终端"。

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

从简单的开始,输入

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

第一个值,test ,是我们告诉控制台要打印的输出,然后我们得到undefined,这是运行console.log() 的返回值。

我们现在可以输入一行新的JavaScript。

使用tab来自动完成

REPL最酷的地方是它是互动的。

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

探索JavaScript对象

试着输入一个JavaScript类的名称,如Number ,加一个点,然后按tab

REPL将打印出你可以访问该类的所有属性和方法。

Pressing tab reveals object properties

探索全局对象

你可以通过输入global. ,然后按tab ,来检查你可以访问的全局对象。

Globals

_ 特殊变量

如果在一些代码之后,你输入_ ,这将会打印出最后一个操作的结果。

点命令

REPL有一些特殊的命令,都是以点开始的. 。它们是

  • .help:显示点命令的帮助
  • .editor:使编辑器更多,可以轻松地编写多行JavaScript代码。一旦你进入这种模式,输入ctrl-D就可以运行你写的代码。
  • .break断句:当输入一个多行表达式时,输入.break命令将中止进一步的输入。与按下ctrl-C相同。
  • .clear: 将 REPL 上下文重置为一个空对象,并清除当前正在输入的多行表达式。
  • .load:加载一个相对于当前工作目录的JavaScript文件。
  • .save: 将你在REPL会话中输入的所有内容保存到一个文件中(指定文件名)。
  • .exit: 存在副本(与按两次ctrl-C相同)。

REPL知道你何时在输入一个多行语句,而不需要调用.editor

例如,如果你开始键入一个迭代,像这样。

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

并按下enter ,REPL将转到一个以3点开始的新行,表明你现在可以继续处理该块。

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

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