Aquí está el código que puse en node.js:
let x = 4; console.log(x); x = 5;Tengo esto en la consola:
4 5¿Alguna idea de por qué reasignar un valor a x provoca otra llamada a console.log()? Estoy en una clase que involucra a JS y el instructor tampoco está muy seguro
Tanto en la consola del navegador como en Node repl, después de escribir una declaración y presionar enter, se imprimirá el "valor de finalización" de la declaración que ingresó. Con las expresiones, por lo general, esto es equivalente a lo que evalúa la expresión. Y, en JavaScript, las asignaciones son (desafortunadamente) expresiones, por lo que x = 5 se evalúa como 5:
console.log(x = 5);Así que cuando escribes la línea
x = 5;y presione enter, ese valor de finalización - 5 - se imprime.
Este comportamiento no ocurre cuando se ejecutan archivos (como node myscript.js o <script src="myscript.js"> ), es puramente una peculiaridad de la consola. Si te confunde, considera usar la consola solo para jugar con fragmentos de juguete muy cortos: para el código real, colócalo en un archivo y luego ejecútalo.