Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
Elevación de let, const con inicialización separada

En Documentaion se dice que let y const se izan.

Las variables declaradas con let y const también se elevan pero, a diferencia de var, no se inicializan con un valor predeterminado. Se lanzará una excepción si se lee una variable declarada con let o const antes de que se inicialice.

También hay una muestra bastante clara allí:

 console.log(num); // Throws ReferenceError exception as the variable value is uninitialized let num = 6; // Initialization

Pero no entiendo por qué esto aumenta el ReferenceError también:

 x = 9 console.log(x) // Why: "Throws ReferenceError exception as the variable value is uninitialized" here ? let x;

Las especificaciones dicen 'let' admite izaje. La inicialización va antes de usar esta variable. ¿Qué ocurre? Si el motivo de ReferenceError es TDZ, ¿por qué en las especificaciones dice que 'let' admite hoising, porque TDZ y hoising son cosas mutuamente excluyentes ... Y cuál podría ser un ejemplo de hoising para 'let' si no puedo usar esta variable antes de la declaración...

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¿Por qué lanza la excepción ReferenceError ya que el valor de la variable no está inicializado aquí, en la línea console.log ?

no lo hace Lo lanza al acceder a la variable, que incluye la asignación:

 x = 9; // exception happens here already! let x;

No puede usar una variable no inicializada en absoluto. Solo se inicializa cuando se evalúa la instrucción let / const .

¿Cuál podría ser un ejemplo de elevación de 'let' si no puedo usar esta variable antes de la declaración?

No puede usarlo, pero puede hacer referencia a él, por ejemplo, creando un cierre sobre él:

 function log() { console.log(x); } // log(); - would fail here let x = 9; log();

También significa que referirse a x en realidad se referirá a esa variable no inicializada, no a otra x de un ámbito externo. Consulte ¿Se declaran las variables con let o const izadas? para más.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda