Comprender la zona muerta temporal en javascript
con let and const antes de su inicialización. Esto puede conducir a un referenceError, dejándolo rascándole la cabeza.
la zona muerta temporal
La zona muerta temporal es un período en la ejecución de un bloque escopiado por bloque variable (declarada con let o const) donde la variable aún no está definida. Este período indefinido existe desde el momento en que la variable se declara hasta el punto en que se procesa su inicialización.
alcance y alzando
variables con cicatrices de bloques, Declaraciones de var, Declaraciones VAR, de menos de VAR, tener un alcance limitado al bloque en el que se definen. El elevación, que es el mecanismo del intérprete de JavaScript de declaraciones móviles en la parte superior de su alcance, no se aplica a las variables de Let y const. Esto da como resultado la creación de una zona muerta temporal, donde la variable ya se declara, pero sigue siendo inaccesible.
impact
accediendo a una variable let o const dentro de sus muertos temporales Zone arroja un referenceerror. Aquí hay un ejemplo:
console.log(aVar); // undefined console.log(aLet); // ReferenceError: Cannot access 'aLet' before initialization var aVar = 1; let aLet = 2;
en este código, Avar, declarado con VAR, se puede acceder antes de la inicialización, mientras que Alet, declarado con LET, no puede. Esto se debe a que Avar está izado, pero Alet no es.
situaciones encontradas
puede encontrar la zona muerta temporal en las siguientes situaciones:
Evitance
para evitar la zona muerta temporal, asegúrese de inicializar variables con escolla de bloques antes de acceder a ellas. Otro enfoque es usar una variable global LET o const declarada fuera de cualquier bloque.
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