Ich weiß, dass dies eine sehr alte Frage ist, aber ich habe niemanden gesehen, der über den Hauptunterschied zwischen process.stdout.write
und gesprochen hat, console.log
und ich möchte es nur erwähnen.
Wie Mauvis Leford und TK-421 betonten , console.log
fügt line-break
das am Ende der Zeile ein Zeichen hinzu ( \n
), aber das ist noch nicht alles.
Der Code hat sich seit mindestens der 0.10.X
Version nicht geändert und jetzt haben wir eine 5.X
Version.
Hier ist der Code:
Console.prototype.log = function() {
this._stdout.write(util.format.apply(this, arguments) + '\n');
};
Wie Sie sehen können, gibt es einen Teil, der besagt, .apply(this, arguments)
dass die Funktionalität einen großen Unterschied macht. Es ist einfacher, dies anhand von Beispielen zu erklären:
process.stdout.write
hat eine sehr grundlegende Funktionalität, Sie können einfach etwas darin schreiben, wie folgt:
process.stdout.write("Hello World\n");
Wenn Sie die Bruchlinie nicht am Ende setzen, erhalten Sie nach Ihrer Zeichenfolge ein seltsames Zeichen, etwa so:
process.stdout.write("Hello World"); //Hello World%
(Ich denke, das bedeutet so etwas wie "das Ende des Programms", sodass Sie es nur sehen, wenn Sie process.stdout.write
am Ende Ihrer Datei verwendet wurden und die Unterbrechungslinie nicht hinzugefügt haben.)
Auf der anderen Seite console.log
kann mehr tun.
Sie können es auf die gleiche Weise verwenden
console.log("Hello World"); //You don't need the break line here because it was already formated
und auch dieser seltsame Charakter verschwand
Sie können mehr als eine Zeichenfolge schreiben
console.log("Hello", "World");
Sie können Assoziationen herstellen
console.log("Hello %s", "World") //Useful when "World" is inside a variable
Und das war's, dass dank des util.format.apply
Teils zusätzliche Funktionalität gegeben ist (ich könnte viel darüber sprechen, was genau dies bewirkt, aber Sie verstehen, dass Sie hier mehr lesen können ).
Ich hoffe, jemand findet diese Informationen nützlich.