Después de crear un objeto de tipo primitivo en la consola de JavaScript, devuelve undefine
por ejemplo
var juan = new String("Juan");
indefinido
Pero después de continuar escribiendo
Juan
Cadena {'Juan'}
Al escribir código en la consola, lo que "le lee" después de presionar Intro es el valor de finalización de la última instrucción.
Las declaraciones de variables no dan como resultado ningún valor de finalización , por lo que se le lee undefined .
Pero, una declaración que haga referencia a un identificador existente le dará el valor en el identificador, que, en este caso, es un objeto String.
(Pero tenga en cuenta que casi no hay una buena razón para usar los constructores primitivos; es mejor usar var john = 'John'; )
Cuando declara una variable y le asigna un valor en la consola, simplemente establece la variable en el valor que le asignó, no devuelve nada.
Entonces, si abres la consola de herramientas de desarrollo y escribes:
let a = 1; la consola informará undefined
si luego escribe a en la consola y presiona regresar, se mostrará 1 como el valor devuelto por el nombre de variable a.
Lo que describiste es un comportamiento normal para la consola.