node.js visualizza “undefined” sulla console

Recentemente ho installato node.js sul mio computer Windows 7.

Durante l’esecuzione di JavaScript, ottengo un messaggio indefinito con un’esecuzione corretta dell’espressione.

Cosa c’è che non va qui? Non ho notato nessun altro effetto collaterale.

inserisci la descrizione dell'immagine qui

Basta scrivere "hello world"; e premi invio … restituirà "hello world" anziché undefined , quindi non viene visualizzato alcun undefined . console.log restituisce undefined e registra anche gli argomenti alla console in modo da ottenere più messaggi.

Le funzioni JavaScript restituiscono sempre qualcosa. Se non si specifica qualcosa da restituire nella funzione, ‘undefined’ viene restituito di default (è ansible verificarlo anche in Firebug).

Non preoccuparti però, questo non influisce su nulla, puoi ignorarlo.

Come sottolineato da altri, la funzione javascript tornerà sempre indefinita se non si specifica alcun valore di ritorno. Puoi semplicemente ignorarlo. Non causerà alcun danno. Ma se ti infastidisce troppo, puoi spegnerlo in repl. Repl ha questa proprietà ignoreUndefined che è impostata su false per impostazione predefinita. Puoi impostarlo su true. Prova questo:

 module.exports.repl.ignoreUndefined = true; 

Bene, la domanda è stata fatta alcuni anni fa, ma c’è ancora un altro modo per spiegare cosa sta succedendo qui.

Prova il prossimo comando:

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

Come menzionato la funzione console.log() restituisce undefined normalmente e puoi scegliere un valore di ritorno migliore. Dal momento che il confronto non rigoroso (astratto) considera undefined uguale a false il || l’operatore ti consente questa scelta.

Considerando che si tratta solo di uno strumento di debug, questo non è necessario in generale, ma aiuta a capire che la console visualizza il testo inviato a stdout e evalora anche il comando e visualizza il valore restituito, o indefinito se non è stato ricevuto alcun valore.

Se è necessario triggersre ignoreUndefined dall’interno di un modulo, è ansible utilizzare la seguente riga per simulare la risposta di AvinashB senza digitare da solo nella console:

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

node stampa anche undefined perché IN GENERALE , visualizza il valore di ritorno di ogni comando e console.log non restituisce nulla.