Elevación de variables declaradas con let o const
Mientras que las variables declaradas con var se comportan como se espera durante el levantamiento, aquellas declaradas con let o const exhiben comportamiento diferente.
Elevación de todas las declaraciones
Todas las declaraciones de JavaScript (var, let, const, function, function*, class) se elevan, lo que significa que son reconocibles en cualquier lugar dentro de su alcance respectivo.
Diferencia de inicialización
Sin embargo, la distinción entre var/ Las declaraciones function/function* y let/const/class radican en su inicialización. Las declaraciones var se inicializan con indefinido desde el momento de la creación del enlace al inicio del alcance. Por el contrario, las declaraciones let/const/class permanecen sin inicializar hasta que se evalúa su declaración.
Zona muerta temporal para variables no inicializadas
Este estado no inicializado crea una "zona muerta temporal " donde acceder a la variable antes de la inicialización da como resultado un Error de referencia.
Ejemplo:
x = y = "global"; (function() { x; // undefined y; // Reference error: y is not defined var x = "local"; let y = "local"; }());
let vs. const en elevación
Dejemos que y const funcionen de manera idéntica en términos de elevación. La diferencia entre ellos es que a una constante siempre se le debe asignar un valor al momento de la declaración.
Conclusión
Las variables declaradas con let o const se elevan, pero permanecen sin inicializar dentro una zona muerta temporal hasta que se procese su declaración. Acceder a ellos prematuramente generará un error de referencia.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3