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.write
y console.log
et je veux juste le mentionner.
Comme Mauvis Leford y TK-421 a souligné, le console.log
ajoute un line-break
à 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 0.10.X
et maintenant nous avons une version 5.X
version.
Ici est 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 que .apply(this, arguments)
et cela 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 juste é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 bizarre 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 process.stdout.write
a été utilisé à la fin de votre fichier et vous n'avez pas ajouté la ligne de rupture)
D'un autre côté, console.log
peut 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 plus d'une chaîne de caractères
console.log("Hello", "World");
-
Vous pouvez faire des associations
console.log("Hello %s", "World") //Useful when "World" is inside a variable
Et c'est tout, cette fonctionnalité supplémentaire est donnée grâce aux util.format.apply
(Je pourrais parler longuement de ce que cela fait exactement, mais vous comprenez ce que je veux dire. aquí ).
J'espère que quelqu'un trouvera ces informations utiles.
5 votes
Pouvez-vous fournir un exemple ? console.log() appelle process.stdout.write avec une sortie formatée. Voir format() dans console.js pour l'implémentation.