2011-12-10 169 views

回答

24

只需寫入"hello world";並回車......它將返回"hello world"而不是undefined,因此不會顯示undefinedconsole.log返回undefined並且還將參數記錄到控制檯,以便獲取多條消息。

+0

謝謝Esailija。當我不輸入任何功能或任何字符時;然後還顯示「未定義」。你能解釋一下發生了什麼? –

+0

@SandeepGB,你對沒有任何輸入有什麼期望? :P不輸入任何內容的返回值最有意義的是'undefined' – Esailija

+2

我試圖理解發生了什麼。 alessioalex回答了我的問題:) –

36

的JavaScript函數總是返回的東西。如果你沒有在函數中指定要返回的東西,默認情況下會返回'undefined'(你也可以在Firebug中查看)。

不要擔心,但這不影響任何事情,您可以忽略它。

+0

+1。謝謝回覆。有沒有辦法擺脫'未定義',應該是什麼語法? –

+0

如果你製作一個程序(網絡應用程序或命令行),你永遠不會「飛」未定義,所以不要擔心。 – alessioalex

+0

當我沒有輸入任何功能或任何字符;然後還顯示「未定義」。你能解釋一下發生了什麼? –

16

正如其他人指出的那樣,如果不指定任何返回值,javascript函數將始終返回undefined。你可以忽略它。這不會造成任何傷害。 但是,如果它太煩人,那麼你可以在repl中關閉它。 Repl具有此屬性ignoreUndefined默認設置爲false。您可以將其設置爲true。 試試這個:

module.exports.repl.ignoreUndefined = true; 
4

如果你需要從一個模塊內打開ignoreUndefined,您可以使用以下行來模擬AvinashB的答案,而不自行輸入到控制檯:

process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n"); 
5

那麼這個問題是在幾年前提出的,但還有另一種解釋這裏發生的事情的方法。

嘗試下一個命令:

console.log("Hello World") || "Bye World"; 

如前所述功能console.log()回報undefined正常,你可以選擇一個更好的返回值。由於非嚴格(抽象)比較認爲undefined等於false||運算符允許您選擇。

考慮到這只是一個調試工具,這是一般使用不必要的,但有助於瞭解該控制檯顯示文本發送到stdout,也evals命令和顯示返回值,或者不確定,如果沒有價值已收到。

+0

嗨@Melo,我認爲這段代碼可以重寫成一個更好的console.log(「Hello World」)。 「再見世界」。 –

+1

謝謝@Vasfed添加格式。 –

+1

修正@DevidFarinelli,也謝謝。 –

0

node也打印undefined因爲通則,它會顯示每個命令的返回值和console.log不返回任何東西。