2016-01-23 154 views
0

我创建了一个简单的变量,如下所示,我想打印它。我编制了命令打印,但这当然不起作用。有没有相当于那个?我希望它显示在输出输出变量像它显示的返回值当我执行x.gatesAgeOnDate()在NodeJS REPL中,如何打印到标准输出?

var billGatesBirthday = '10-28-1955'; 
    print billGatesBirthday; 

    exports.gatesAge = function() { 
     return (new Date() - new Date(billGatesBirthday))/1000/60/60/24/365.25 
    }; 

    exports.gatesAgeOnDate = function(dateOfInterest) { 
     console.log('dateOfInterest'); 
     return (new Date(dateOfInterest) - new Date(billGatesBirthday))/1000/60/60/24/365.25 
    }; 
+1

Just console.log(billGatesBirthday)? – Evers

+0

protip:不要在REPL中工作,创建一个像'myfile.js'这样的文件并告诉节点使用'> node myfile'运行该文件。在REPL中工作既不方便(你不能取消错误,只会覆盖错误),而不是使用Node的人使用Node。 –

回答

1

在REPL中工作有点奇怪(大多数人,我建议你也这样做,制作真正的.js文件,然后使用node realfile.js代替它运行,“.js”甚至是可选的),但是:你有三个选项。

首先,在JavaScript中执行此操作的通用方法是使用console.log(及相关语句)。这就是它在锡上所说的:它会记录到控制台。

但是,您处于REPL中,这意味着您评估的任何命令也会自动记录其返回值。虽然在现实点运行(从文件)你只能依靠console.log,在REPL你也可以只输入变量的名称和看到的返回值:

> var a = "cats": 
undefined 
> a 
'cats' 

得心应手。

最后,你在Node中,所以你可以通过process.stdout.write直接访问标准输出管道,所以你可以流写入。我们绝对没有理由这样做,但你可以:

> var a = "lol"; 
undefined 
> process.stdout.write(a); 
loltrue 

“这不只是一个”不,这不是,像上面提到这是你做返回值的东西。 console.log是足够自动为您插入一个换行符,process.stdout显然不会。所以我们看到打印的a的值,没有换行符,然后流写入尝试的返回值,即true,因为没有出错。不要为此使用process.stdout。

0
console.log(billGatesBirthday); 

始终使用的console.log()使用JavaScript来打印任何东西。

+0

如果您使用节点REPL,则不适用。您也可以利用REPL始终将回报记录回控制台的事实。 –

+0

REPL日志未定义声明变量而不是实际值。 –

+0

是的,显然。 REPL日志返回,所以你只需输入变量名称并回车即可。这返回,而不出所料,变量的内容。 –

相关问题