CnSwift - 雨燕

agile development - 敏捷开发

Node学习之使用REPL

Node有一个交互式组件称为REPL(read-eval-print-loop,读取求值打印循环)。

运行REPL:

1
$ node

只需要输入node命令就可以运行repl,不需要提供任何Node应用文件参数。
REPL默认尖括号>为命令行提示符。在该符号之后输入的任何内容都由底层的V8 JavaScript引擎进行处理。
可以使用下划线“_”调用上一个表达式。还可以用下划线访问该对象的属性或者调用方法:

1
2
3
4
5
6
7
8
$ node
> ['a', 'b', 'c']
[ 'a', 'b', 'c' ]
> _.length
3
> _.toString()
'3'
>

在REPL中也可以使用var关键字。可以在之后通过变量名访问表达式或者变量。

1
2
3
4
5
6
7
8
$ node
> var a = 2;
undefined
> a++;
2
> a++;
3
>

按Crtl+C键两次或者Crtl+D键一次退出REPL。
REPL的优势:
更好地理解表层一下的JavaScript
多行以及更复杂的JavaScript
可以像写文件一样在REPL中输入JavaScript,包括导入module的require语句。
以下代码显示了如何使用Query String(qs)module:

1
2
3
4
5
6
7
8
9
10
11
12
> qs = require('querystring');
{ unescapeBuffer: [Function],
unescape: [Function],
escape: [Function],
encode: [Function],
stringify: [Function],
decode: [Function],
parse: [Function] }
> val = qs.parse('file=main&file=secondary&test=one').file;
[ 'main', 'secondary' ]
> var qs = require('querystring');
undefined

由于没有使用var关键字,表达式的结果被直接输出,在本例中是querystring对象的接口。预期之外的收获是用这种方式不仅可以访问对象,同时还可以了解更多关于对象的可用接口。
如果不想看到可能出现的长文本输出,请使用var关键字,可以使用qs变量访问querystring对象的任一方法。

更多精彩内容,请关注公众号 Golang语言开发栈公众号二维码
感谢赞赏.

Welcome to my other publishing channels