Node.js REPL中的“_”(下划线)符号是什么意思?

当我注意到这件事情时,我正在用Node.js玩一些代码:

> 'hello world'.padEnd(20); 'hello world ' > 'hello world'.padEnd(20, _); 'hello worldhello wor' 

下划线符号在这里做什么?

 > _ 'hello worldhello wor' 

_符号返回REPL节点控制台中最后logging的expression式的结果:

 > 2 * 2 4 > _ 4 

正如文档中所写,在6.x及更高版本的节点中,可以通过将值显式设置为_来禁用此行为:

 > [ 'a', 'b', 'c' ] [ 'a', 'b', 'c' ] > _.length 3 > _ += 1 Expression assignment to _ now disabled. 4 > 1 + 1 2 > _ 4 

但在旧版本的function不起作用:

 > [ 'a', 'b', 'c' ] [ 'a', 'b', 'c' ] > _.length 3 > _ += 1 4 > 1 + 1 2 > _ 2 

_在节点控制台中返回最后一个expression式的结果。

 > 1 + 2 3 > _ 3