Je sais que c'est une très vieille question, mais je n'ai vu personne parler de la principale différence entre process.stdout.writeet console.loget je veux juste la mentionner.
Comme Mauvis Leford et TK-421 l'ont souligné, le console.logajoute un line-breakcaractère à la fin de la ligne ( \n) mais ce n'est pas tout ce qu'il fait.
Le code n'a pas changé depuis au moins la 0.10.Xversion et maintenant nous avons une 5.Xversion.
Voici le code:
Console.prototype.log = function() {
this._stdout.write(util.format.apply(this, arguments) + '\n');
};
Comme vous pouvez le voir, il y a une partie qui dit .apply(this, arguments)et qui fait une grande différence sur la fonctionnalité. Il est plus facile d'expliquer cela avec des exemples:
process.stdout.write a une fonctionnalité très basique, vous pouvez simplement écrire quelque chose dedans, comme ceci:
process.stdout.write("Hello World\n");
Si vous ne mettez pas la ligne de rupture à la fin, vous obtiendrez un caractère étrange après votre chaîne, quelque chose comme ceci:
process.stdout.write("Hello World"); //Hello World%
(Je pense que cela signifie quelque chose comme "la fin du programme", donc vous ne le verrez que si vous avez process.stdout.writeété utilisé à la fin de votre fichier et que vous n'avez pas ajouté la ligne de rupture)
D'un autre côté, console.logpeut faire plus.
Vous pouvez l'utiliser de la même manière
console.log("Hello World"); //You don't need the break line here because it was already formated et aussi ce personnage bizarre a disparu
Vous pouvez écrire plusieurs chaînes
console.log("Hello", "World");
Vous pouvez faire des associations
console.log("Hello %s", "World") //Useful when "World" is inside a variable
util.format.applyEt c'est tout, cette fonctionnalité supplémentaire est donnée grâce à la partie (je pourrais parler beaucoup de ce que cela fait exactement, mais vous comprenez mon point, vous pouvez en lire plus ici ).
J'espère que quelqu'un trouvera ces informations utiles.