so che questa è una domanda molto vecchio, ma non ho visto nessuno parlando della differenza principale tra process.stdout.write
e console.log
e voglio solo per me questo
Come Mauvis Leford e TK-421 rilevare, il console.log
aggiunge un carattere line-break
alla fine della linea (\n
), ma non è tutto ciò che fa.
Il codice non è cambiato dalla versione almeno 0.10.X
e ora abbiamo una versione 5.X
.
Here è il codice:
Console.prototype.log = function() {
this._stdout.write(util.format.apply(this, arguments) + '\n');
};
Come si può vedere, c'è una parte che dice .apply(this, arguments)
e che fa una grande differenza sulla funzionalità. E 'più facile spiegare che con gli esempi:
process.stdout.write
ha una funzionalità molto semplice, si può solo scrivere qualcosa là dentro, in questo modo:
process.stdout.write("Hello World\n");
Se non si mette la linea di interruzione alla fine si otterrà un personaggio strano, dopo la stringa, qualcosa di simile:
process.stdout.write("Hello World"); //Hello World%
(penso che significa qualcosa come "la fine del programma", così potrete vedere solo se si process.stdout.write
è stato utilizzato al fine del tuo file e non l'hai fatto t aggiungere la linea di separazione)
D'altra parte, console.log
può fare di più.
Si può usare allo stesso modo
console.log("Hello World"); //You don't need the break line here because it was already formated
e anche quel personaggio strano è scomparsa
È possibile scrivere più di una stringa
console.log("Hello", "World");
È può fare associazioni
console.log("Hello %s", "World") //Useful when "World" is inside a variable
Un gioco è fatto, che ha aggiunto funzionalità è data grazie alla parte util.format.apply
(ho potuto parlare molto su cosa esattamente questo fa ma si ottiene il mio punto, si può leggere di più here).
Spero che qualcuno trovi utile questa informazione.
Puoi fornire un esempio? console.log() chiama process.stdout.write con output formattato. Vedi format() in console.js per l'implementazione. –
Postalo come risposta =) – ajsie