Explica este código JavaScript
function test(){
let nombre = "Alex";
if(true){
console.log(nombre);
let nombre = "Oscar";
}
}
console.log(test());
A. Alex
B. ReferenceError: Cannot access 'nombre' before initialization
C. Oscar
D. SyntaxError
Respuesta en el primer comentario.
Top comments (1)
Respuesta:
B.
ReferenceError: Cannot access 'nombre' before initialization
Dos aspectos a tomar en cuenta en este ejemplo.
Primero, recordar que las variables declaradas con
let
oconst
tienen scope de bloqueSegundo, recordar que las variables declaradas con
let
oconst
no tienen hoisting, cuando intentamos acceder a una variable antes de su inicializción entra en laTemporal Dead Zone
.La variable
nombre
no puede ser mostrada sin antes inicializarla,nombre
esta en su Temporal Dead Zone.