REPL 表示 Read Evaluate Print Loop,它是一种编程语言环境(基本上是一个控制台窗口),
它将单个表达式作为用户输入,并在执行后将结果返回到控制台。
REPL 会话提供了一种快速测试简单 JavaScript 代码的便捷方式。
一、启动方式
如果没有任何脚本或任何参数的情况下运行 node 命令,将启动一个 REPL 会话:
|
|
二、编写测试代码
|
|
第一个值 test
告诉控制台打印的输出,然后得到 undefined,这是运行 console.log() 的返回值。
Node 读取这行代码,对其进行评估,打印结果,然后返回等待更多行代码。
Node 会在 REPL 中执行的每段代码循环这三个步骤,直到退出会话。 这就是 REPL 得名的地方。
Node 会自动打印任何一行 JavaScript 代码的结果,而无需指示它如何做。 例如,输入以下行并按回车键:
|
|
请注意以上两行输出的差异。
Node REPL 在执行 console.log() 后打印 undefined,而另一方面,它只是打印 5 === ‘5’ 的结果。
需要记住,前者在 JavaScript 中只是一个语句,后者是一个表达式。
在某些情况下,要测试的代码可能需要多行。
例如,假设要定义一个生成随机数的函数,在 REPL 会话类型中的输入以下行并按 Enter:
|
|
Node REPL 足够智能,可以确定还没有完成代码编写,它将进入多行模式,以便输入更多代码。 现在完成函数定义并按回车键:
|
|
Node 将退出多行模式,并打印 undefined 因为没有返回值。 这种多线模式是有限的。
三、使用 Tab键 自动完成
REPL 很酷的一点是它是交互式的。
在编写代码时,如果按下 Tab 键,REPL 将尝试自动完成编写的内容以匹配已经定义的变量或预定义的变量。
尝试输入 JavaScript 类的名称,例如 Number,添加一个点并按 Tab。
REPL 将打印可以在该类上访问的所有属性和方法:
四、搜索全局对象
可以通过键入 global 来检查有权访问的全局变量。 并按下 Tab键:
五、_ 特殊变量
如果在某些代码之后键入 _
,则将打印上次操作的结果。
六、向上箭头键
如果按向上箭头键,可以访问在当前甚至以前的 REPL 会话中执行的前几行代码的历史记录。
七、点命令
REPL 有一些特殊的命令,都以点开头
-
.help:显示点命令帮助
-
.editor:启用编辑器模式,轻松编写多行 JavaScript 代码。 进入此模式后,输入 ctrl-D 以运行您编写的代码。
-
.break:输入多行表达式时,输入 .break 命令将中止进一步的输入。 与按 ctrl-C 相同。
-
.clear:将 REPL 上下文重置为空对象并清除当前正在输入的任何多行表达式。
-
.load:加载一个 JavaScript 文件,相对于当前工作目录
-
.save:将您在 REPL 会话中输入的所有内容保存到文件中(指定文件名)
-
.exit:退出repl(与按ctrl-C两次相同)
REPL 知道何时输入多行语句而无需调用 .editor。
例如,如果开始输入这样的迭代:
|
|
然后按 Enter,REPL 将转到以 3 个点开头的新行,表示现在可以继续处理该块。
|
|
如果在行尾输入 .break ,多行模式将停止并且语句不会被执行。