"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿En qué se diferencian `let` y `const` de `var` en JavaScript Hoisting?

¿En qué se diferencian `let` y `const` de `var` en JavaScript Hoisting?

Publicado el 2024-12-21
Navegar:918

How Do `let` and `const` Differ from `var` in JavaScript Hoisting?

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.

Último tutorial Más>

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