如何使用Node.js REPL

article/2025/9/21 6:08:11

目录

1、Nodejs REPL

2、_特殊变量

3、向上箭头键

4、点命令

5、从JavaScript文件运行REPL


1、Nodejs REPL

REPL代表Read-Evaluate-Print-Loop,是交互式解释器。

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

node script.js

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

node

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

如果你现在在你的终端上尝试它,会发生这样的事情:

node
Welcome to Node.js v16.16.0.
Type ".help" for more information.
> 

命令保持空闲模式,等待我们输入某些内容。

简单测试下:

> console.log(123)
123
undefined

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

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

> 5 === '5'
false
>

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

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

> function generateRandom() {
... console.log(123)
... }
undefined

2、_特殊变量

默认情况下,默认求值器将分配最近 将已求值表达式转换为特殊变量_(下划线)。

> generateRandom()
123
undefined
> _
undefined
>[1, 2, 3]
[1, 2, 3]
>_.length
3

3、向上箭头键

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

4、点命令

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

按enter,REPL将转到以3个点开始的新行,表示您现在可以继续处理该块了。

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

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

5、从JavaScript文件运行REPL

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

const repl = require('repl');

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

repl.start();

在命令行中运行该文件。

node repl.js
> const n = 10

您可以传递一个字符串,显示REPL何时启动。默认值是'>'(后面有一个空格),但我们可以定义自定义提示符。

// Unix 风格的提示
const local = repl.start('$ ');

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

local.on('exit', () => {console.log('exiting repl');process.exit();
});

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

import repl from 'repl';const local = repl.start('$ ');local.on('exit', () => {console.log('退出 repl ==========');process.exit();
});

打印结果:

$ node repl.js
$
退出 repl ==========

退出当前交互环境的三种方式:

1、通过快捷键:CTRL + D

2、通过快捷键:CTRL + C (连续按2次)

3、命令行输入:.exit

 


http://chatgpt.dhexx.cn/article/pi16n2tX.shtml

相关文章

Node.js的交互式解释器(REPL)

什么是交互式解释器 交互式解释器,就是交互的解释器,即每输入一行然后回车都会有所反应。 必要时可以拿node当计算器来使用。 REPL(Read Eval Print Loop:交互式解释器)表示一个电脑的环境,类似于电脑的cmd命令行,我们可以在其…

简单说说USB协议(三)四种传输方式

数据传输的大致步骤: 配置传输方法——选择事务——发送各种令牌、数据、握手包 传输方法 既然USB是用来进行数据传输的,那么必然会涉及到配置传输方法: 批量传输、中断传输、同步传输、控制传输。 1、批量传输 适用于数据量大&#xf…

USB协议详解第12讲(USB传输-初探)

目录 1.USB传输、事务、包的关系 2.USB传输类型 2.1控制传输 2.2同步传输 2.3批量传输 2.4中断传输 3.传输总结及后期内容 1.USB传输、事务、包的关系 USB传输、事务、包是从不同层次上去说明一次数据交互的三个概念。 举个例子可能更好些,"某领导和一…

USB 协议的科普

旧名称 新名称 最新名称 最大速度 2000.04 USB 2.0 480 Mbps 2008.11 USB 3.0 USB 3.1 Gen1 USB 3.2 Gen1 5 Gbps 2013.12 USB 3.1 USB 3.1 Gen2 USB 3.2 Gen2 10 Gbps 2017.09 USB 3.2 USB 3.2 Gen2x2 20 Gbps 英特尔 雷电 3 USB-C Thunder…

USB协议详解第1讲(核心概念通俗理解)

目录 0.概括 1.USB传输(Transfer) 2.事务(Transaction) 3.包(Pack)的概念 4.USB 主机(Host) 5.设备(Device) 6.配置(Configuration&#x…

USB协议基本知识

USB 基本知识 USB的重要关键概念: 1、 端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点&…

USB协议分析仪

1 ULPI PHY passive sniffing mode 概念: non driving, no pull-up, no pull-down Function Control.opMode 1; // non-Driving OTG Control.DpPulldown 0; // no pull-down OTG Control.DmPulldown 0; // no pull-down USB IO.ChargerPullupEnDP 0; // no pull-up USB IO.…

usb协议栈概述

usb协议栈概述 usb协议栈的信息源头是www.usb.org usb协议栈的所有者是usb联盟。它有七个美国公司为它的成员 这些公司包括苹果,惠普,英特尔,微软,瑞萨科技,ST微电子,德州仪器 usb的版本发展 从1.0&#…

USB协议-描述符篇(一)

USB协议-描述符篇(一) 1.USB描述符简介2.USB标准描述符2.1 设备描述符2.2 配置描述符2.3 接口描述符2.4 端点描述符2.5 字符串描述符 3.特殊类描述符4.USB类定义5.USBDescriptorType 1.USB描述符简介 USB描述符,即使用描述符报告它们的属性。…

USB协议 - UVC标准协议规范(二)

USB协议-UVC标准协议规范(二) 1.概述2.UVC功能特征2.1 Video Interface Class2.2 Video Interface subclass and Protocol2.3 UVC功能拓扑2.3.1 Unit单元2.3.1.1 SU(选择器单元)2.3.1.2 PU(处理单元)2.3.1.3 EU(编码单元)2.3.1.4 …

USB 协议整理 五:USB概述及协议基础(四)

十一、USB 的四种传输类型 1、批量传输 详细内容见 《USB2.0标准协议》 8.5.2 Bulk Transactions 章节。 批量事务类型的特点是能够通过错误检测和重试来保证在主机和设备之间无错误地传递数据。批量事务使用由令牌、数据和握手数据包组成的三阶段事务,如图 8-30…

USB总线-USB协议简介(一)

1.简介 USB是通用串行总线(Universal Serial Bus)的缩写。在USB总线出现之前,计算机与键盘、鼠标、扫描仪、打印机都使用专用的接口连接,不同设备的接口不能互用,扩展性很差,每次插拔设备都要关闭计算机&a…

USB 协议整理 二:USB概述及协议基础(一)

一、USB 版本 二、USB是什么 USB是一种接口技术,真正的即插即用,英文全称是Universal Serial Bus,USB就是简写,中文叫通用串行总线。USB 的出现简化了个人计算机与外围设备的连接,增加了易用性。 USB 是主从模式。 …

强大的USB协议分析工具

2020年最后一天了,感谢大家一年来对我文章的支持,有你们的支持就是我强大的动力。 今天来给大家介绍一个USB 协议分析软件LeCroy USB Advisor,软件安装包下载连接如下: 链接:https://pan.baidu.com/s/12qBCOjuy4i8kr1M…

USB 充电协议

文章目录 锂电子电池电池的发展史锂电子电池充电过程充电物理公式充电器接口 USB协议慢充USB-IF BC1.2 快充QCOM QCOPPO VOOCUSB-IF PDMTK PE USB 充电市场 锂电子电池 电池的发展史 USB充电,都是充的 锂离子电池https://blog.csdn.net/u012719256/article/details/72627022 …

USB 协议分析(含基本协议和 USB 请求和设备枚举)

1. 物理特性 1.1 引脚 一条USB传输线分别由地线、电源线、D和D-四条线构成,D和D-是差分输入线,它使用的是3.3V的电压(与CMOS的5V电平不同),而电源线和地线可向设备提供5V电压,最大电流为500mA(可以在编程中设置)。 引脚标号信号名…

1.USB协议简介

最近学习usb相关的知识,一直感觉入不了门,看《linux那些事儿之我是usb》,对usb协议也不是很熟悉,没能坚持看下去,直到看了《圈圈教你玩usb》一书,把自己的兴趣立马提了起来,大牛圈圈用51单片机实…

USB协议基础篇

初次接触USB的同学,可能会被里面各种名词给搞晕,下面就来梳理一下这些知识,希望能帮助大家理解USB。 目录 一,从最常见的名词说起 1.1 什么是USB 1.2 USB协议版本 1.3 USB接口分类 1.4 PIPE 1.5 endpoint 1.6 管道通信方式…

USB协议简介

1.USB协议简介 https://blog.csdn.net/songze_lee/article/details/77658094 2017年08月28日 23:20:16 songze_lee 阅读数:22978 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/songze_lee/article/details/7…

USB协议详解

本博客整理自网络,仅供学习参考,如有侵权,联系删除。邮箱:rom100163.com 一个transfer(传输)由一个或多个transaction(事务)构成,一个transaction(事务)由一个或多个packet(包)构成,一个packet(包)由一个或…