¿Qué se registra en consola?
console.log(a);
var a = 1;Opciones
- 1
- undefined (Opción correcta)
- ReferenceError
- null
Respuesta
undefined
Por qué
Antes de ejecutar el código, JavaScript mueve las declaraciones al inicio de su scope ('hoisting'). var a se eleva y queda en undefined; la asignación = 1 se queda donde está.
Así que el código se comporta como: var a; console.log(a); a = 1; → undefined.
Con let o const obtendrías un ReferenceError: también se elevan, pero no se pueden usar antes de su línea (la 'temporal dead zone').
Recuerda
var se eleva como undefined; let/const lanzan error si se usan antes.