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 将打印您可以在该类上访问的所有属性和方法:
探索全局对象
你可以通过输入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
。
例如,如果您开始键入这样的迭代:
[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.如何使用 Node.js REPL相关推荐
- 15.Node.js REPL(交互式解释器)
转自:http://www.runoob.com/nodejs/nodejs-tutorial.html Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电 ...
- 4、Node.js REPL(交互式解释器)
Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并 ...
- mac node repl_如何使用Node.js REPL
mac node repl The author selected the Open Internet/Free Speech Fund to receive a donation as part o ...
- Node.js 官网入门教程(一) CommonJS 模块规范、Node.js REPL、console、CLI、exports
Node.js 官网入门教程(一) CommonJS 模块规范.Node.js REPL.console.CLI.exports 文章目录 Node.js 官网入门教程(一) CommonJS 模块规 ...
- npm should be run outside of the Node.js REPL, in your normal shell
错误: npm should be run outside of the Node.js REPL, in your normal shell 在搭建vue环境时报错, 设置缓存文件夹 npm con ...
- Node.js REPL(交互式解释器)
Node.js REPL(交互式解释器)是一个特殊的命令行环境,可以让我们在命令行中直接执行 JavaScript 代码.REPL 是"Read-Eval-Print-Loop"的 ...
- 如何在 Windows 10 中搭建 Node.js 环境?
2019独角兽企业重金招聘Python工程师标准>>> [编者按]本文作者为 Szabolcs Kurdi,主要通过生动的实例介绍如何在 Windows 10 中搭建 Node.js ...
- 10个最佳Node.js企业应用案例:从Uber到LinkedIn
译者按: Node.js 8已经发布了,NPM模块每周下载量早已超过10亿,从Uber到LinkedIn都在使用Node.js,谁说JavaScript不能写后台? 原文: 10 best Node. ...
- 10+ 最佳的 Node.js 教程和实例
如果你正在找Node.js的学习资料及指南,那么请继续(阅读),我们的教程将会覆盖即时聊天应用.API服务编写.投票问卷应用.人物投票APP.社交授权. Node.js on Raspberry Pi ...
最新文章
- geoserver 通过代码实现发布地图服务
- 京东全球购11·11战报:面膜售出430万片,爽肤水销售额是同期7倍
- mnn c++ windows 调用实例
- vue[源码]你不知道的observe!
- centos7编译安装mysql5.7_在Centos7源码包编译安装MySQL5.7
- C指针原理(23)-win32汇编及.NET调试
- win7计算机ping不通,win7系统局域网中ping不通本机的解决方法
- android源码分析(一) - 语言切换机制
- php curl exec ch,PHP curl_exec函数
- C/C++[指针/引用]
- 2022年最新过DD检测方法dd防检测方法
- 解决Win10无法安装运行SqlServer 2000
- Python-玩转数据-XML 解析
- 继杭州购房宝典后,Github上的这个程序员买房实用指南火了!
- 利用javascript写一个石头剪刀布的简易小游戏
- lstm token分类模型代码解析(直接传入batch数据,测试pad和pack_padded、pad_packed三函数)
- 基于微信小程序小说图书商城管理系统(微信小程序毕业设计)
- [CV] 基于机器视觉和强化学习的导航
- 小程序发送 request请求失败 提示不在合法域名列表中的解决方法
- 信息熵:什么是信息熵?
热门文章
- IllegalReferenceCountException: refCnt: 0, decrement: 1
- 计算机网络(七)——互联网上的音频/视频服务 和 无线网络与移动网络
- 重磅:阿里开启大规模校招,传已启动保密项目
- 迅雷极速版 win10 奔溃、闪退,官方补丁无法安装解决办法
- 【线段树】超市促销 rqnoj572
- 论文阅读——Globally and Locally Consistent Image Completion
- 解决IDEA提交代码时提示“Performing Code Analysis...”
- springboot设置空参数_springboot请求参数为空
- 小甲鱼飞机大战(素材+代码)
- 房多多Q2营收同比下降46%:亏损同比扩大8.9倍,股价再创新低