2016-01-23 83 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日誌返回,所以你只需輸入變量名稱並回車即可。這返回,而不出所料,變量的內容。 –

相關問題