sé que esto es una pregunta muy antiguo, pero no vi a nadie hablando de la diferencia principal entre process.stdout.write
y console.log
y yo solo quiero que me nción.
Como Mauvis Leford y TK-421 señalado, la console.log
añade un carácter line-break
al final de la línea (\n
), pero eso no es todo lo que hace.
El código no ha cambiado desde al menos 0.10.X
y ahora tenemos una versión de 5.X
.
Here es el código:
Console.prototype.log = function() {
this._stdout.write(util.format.apply(this, arguments) + '\n');
};
Como se puede ver, hay una parte que dice .apply(this, arguments)
y que hace una gran diferencia en la funcionalidad. Es más fácil de explicar que con ejemplos:
process.stdout.write
tiene una funcionalidad muy básica, puede simplemente escribir algo allí, así:
process.stdout.write("Hello World\n");
Si usted no pone la línea de ruptura en el extremo obtendrá un personaje extraño después de su cuerda, algo como esto:
process.stdout.write("Hello World"); //Hello World%
(creo que significa algo así como "el fin del programa", por lo que verá sólo si process.stdout.write
se utilizó en el final de su archivo y no lo hizo t agregar la línea de salto)
Por otro lado, console.log
puede hacer más.
Se puede utilizar de la misma manera
console.log("Hello World"); //You don't need the break line here because it was already formated
y también que el carácter extraño desapareció
Puede escribir más de una cadena
console.log("Hello", "World");
Usted puede hacer asociaciones
console.log("Hello %s", "World") //Useful when "World" is inside a variable
Una eso es todo, que añade funcionalidad se da gracias a la parte util.format.apply
(que podría hablar mucho acerca de qué es exactamente lo que esto hace, pero usted consigue mi punto, se puede leer más here).
Espero que alguien encuentre esta información útil.
¿Puedes dar un ejemplo? console.log() llama a process.stdout.write con salida formateada. Vea format() en console.js para la implementación. –
Póngalo como respuesta =) – ajsie