¿QUÉ ES LA TEMPORAL DEAD ZONE (Zona Muerta Temporal) EN JAVASCRIPT? | JS en ESPAÑOL
Una región de nestro código donde una variable no se puede acceder porque la ejecución del programa todavía no pasó por la línea de código donde es declarada
/*El uso del hoisting hace que la declaracion de variables empezara en la primera
linea del scope, esto se ve reflejado en la siguiente linea */
console.log(nombre) //undefined por #hoisting
var nombre = "Mi nombre"
/*Pero en el ES6 se declaro la TDZ a donde son mandadas las variables
al ser delcaradas con let o const hasta que sean usadas*/
console.log(nombre) //reference error
const nombre = "Mi nombre"
/*Por lo que por hoisting esto obtendrá*/
const nombre //en realidad esta en la TDZ hasta que se le asigne un valor, por lo tanto-
console.log(nombre) //reference error
nombre = "Mi nombre"
/*Otro ejemplo de TDZ*/
let miEdad = getEdad(); //aqui no hay problema porque miEdad ya tiene un valor
const edad = 16 //
function getEdad() {
return edad // aqui el problema es que edad no esta inicializada, no tiene valor
}
/*mediante el hoisting obtendremos esto*/
let miEdad //en la TDZ
const edad //en la TDZ
function getEdad() { //just up here by hoisting
return edad
}
miEdad = getEdad(); //aqui corremos la funcion get edad, pero edad esta en la TDZ
//por lo tanto reference error
edad = 16
/*Que pasa si a una variable le asignamos la misma variable como valor*/
let nombre = nombre
/*Js va a iniciar preguntandose por el valor de la derecha,
pero al no estar inicializado nos mandara un refference errror*/