《Node学习指南》一第2章 Node与REPL 2.1 REPL:先睹为快和未定义的表达式

简介:

本节书摘来自异步社区《Node学习指南》一书中的第2章,第2.1节,作者【美】Shelley Powers,更多章节内容可以访问云栖社区“异步社区”公众号查看

第2章 Node与REPL

Node学习指南
尝试使用Node编写自定义的模块或者应用程序时,并不需要每次运行写好的JavaScript文件来测试代码功能。Node有一个交互式组件称为REPL(read-eval-print-loop,读取求值列印循环),这将是本章的主题。

REPL(发音为“repple”)支持简化的Emacs风格行编辑和一小部分基本命令。在REPL中输入任何内容都与用Node运行JavaScript编写的文件具有相同的处理方式。事实上,可以使用REPL编写整个应用程序——这样就可以频繁地对程序进行测试。

本章涉及REPL的一些有趣的技巧以及如何使用这些技巧,包括如何替换浏览历史命令的底层机制以及命令行编辑等内容。

最后,如果内建的REPL不能提供你所需要的交互环境,本章的后续部分会介绍用于创建自定义REPL的API。

提示:
如何使用REPL:http://docs.nodejitsu.com/articles/REPL/how-to-use-nodejs-replNodejitsu。网站提供的如何创建自定义REPL的教程:http://docs.nodejitsu.com/articles/REPL/how-to-create-a-custom-repl

2.1 REPL:先睹为快和未定义的表达式

Node学习指南
只需要输入node命令就可以运行repl,不需要提供任何Node应用文件作参数:

$ node

REPL默认尖括号>为命令行提示符。在该符号之后输入的任何内容都由底层的V8 JavaScript引擎进行处理。

REPL的使用很简单,就像在文件中编写JavaScript一样:

> a = 2;
2

REPL可以即时打印输入的任何表达式的结果。在上面例子中,表达式的结果是2。下面这个例子中表达式结果是有三个元素的数组:

> b = ['a','b','c'];
['a','b','c']

可以使用下划线“_”调用上一个表达式。本例中,a为2,结果表达式两次自增1:

> a = 2;
2
> _ ++;
3
> _ ++;
4

还可以用下划线访问该对象的属性或者调用方法:

> ['apple','orange','lime']
[ 'apple','orange','lime']
> _.length
3
>3+ 4
7
> _.toString();
'7'

在REPL中也可以使用var关键字。可以在之后通过变量名访问表达式或者变量。但是这样可能会得到意料之外的结果。比如,在REPL中输入以下命令行:

var a = 2;

该表达式返回值并不是2,而是undefined。表达式结果为undefined的原因是变量赋值的表达式并不返回变量的值作为表达式的值。

理解以下代码,多少可以解释REPL中的这种现象:

console.log(eval('a = 2'));
console.log(eval('var a = 2'));

将上两行代码写入文件并用Node运行,返回值如下:

2
undefined

第二行代码并没有返回结果给eval,因此返回值为undefined。要记得,REPL是read-eval-print loop,重点在eval,就是求值。

但是,在REPL中你仍旧可以使用该变量,像在Node应用中一样:

> var a = 2;
undefined
> a++;
2
> a++;
3

后两条命令有返回值,由REPL打印输出。

相关文章
|
3月前
|
存储 JavaScript 前端开发
Node.js REPL(交互式解释器)
Node.js REPL(交互式解释器)
20 1
|
4月前
|
Web App开发 监控 JavaScript
【Node系列】REPL详解
Node.js REPL(Read-Eval-Print Loop)是一个交互式环境,允许用户在命令行中直接输入JavaScript代码并立即看到结果。REPL是Node.js的一个重要组成部分,它提供了一个方便的方式来测试代码片段、快速尝试新功能或进行调试。
54 1
|
JavaScript 前端开发
如何使用Node.js REPL
如何使用Node.js REPL
|
存储 JavaScript 前端开发
|
存储 Web App开发 JSON
Node.js系列基础学习----安装,实现Hello World, REPL
Node.js系列基础学习----安装,实现Hello World, REPL
155 0
Node.js系列基础学习----安装,实现Hello World, REPL
|
存储 JavaScript 前端开发
Node.js学习笔记(三、REPL交互式解释器)
Node.js学习笔记(三、REPL交互式解释器)
140 0
Node.js学习笔记(三、REPL交互式解释器)
|
存储 JavaScript 前端开发
Node.js REPL(交互式解释器)
Node.js REPL(交互式解释器) Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境 读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中。
1037 0
|
Web App开发 JavaScript 前端开发
《Node学习指南》一导读
Node相关的技术依然年轻充满生机,经常出现有趣的变化和改动。同时,这项技术也达到了一定的成熟度,可以确保你在学习Node上花费的时间是值得的:即使在Windows上安装也非常简单;从成百上千的可用模块中涌现出了最佳组合模块;对于产品环境来说这种结构足够健壮。
1851 0