如何使用Node.js REPL

REPL代表Read-Evaluate-Print-Loop,它是快速探索Node功能的好方法

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

node script.js

如果省略文件名,则在REPL模式下使用它:

node

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

❯ node
>

该命令将保持空闲状态,并等待我们输入内容。

提示:如果不确定如何打开终端,请在“”。

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

从简单开始并输入

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

The first value, test, is the output we told the console to print, then we get undefined which is the return value of running console.log().

We can now enter a new line of JavaScript.

Use the tab to autocomplete

The cool thing about the REPL is that it’s interactive.

As you write your code, if you press the tab key the REPL will try to autocomplete what you wrote to match a variable you already defined or a predefined one.

Exploring JavaScript objects

Try entering the name of a JavaScript class, like Number, add a dot and press tab.

The REPL will print all the properties and methods you can access on that class:

Pressing tab reveals object properties

Explore global objects

You can inspect the globals you have access to by typing global. and pressing tab:

Globals

The _ special variable

If after some code you type _, that is going to print the result of the last operation.

Dot commands

The REPL has some special commands, all starting with a dot .. They are

  • .help: shows the dot commands help
  • .editor: enables editor more, to write multiline JavaScript code with ease. Once you are in this mode, enter ctrl-D to run the code you wrote.
  • .break: when inputting a multi-line expression, entering the .break command will abort further input. Same as pressing ctrl-C.
  • .clear: resets the REPL context to an empty object and clears any multi-line expression currently being input.
  • .load: loads a JavaScript file, relative to the current working directory
  • .save: saves all you entered in the REPL session to a file (specify the filename)
  • .exit: exists the repl (same as pressing ctrl-C two times)

The REPL knows when you are typing a multi-line statement without the need to invoke .editor.

For example if you start typing an iteration like this:

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

and you press enter, the REPL will go to a new line that starts with 3 dots, indicating you can now continue to work on that block.

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

If you type .break at the end of a line, the multiline mode will stop and the statement will not be executed.

Download my free Node.js Handbook


More node tutorials: