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

374
Vistas
¿Por qué la función JS se muestra en el alcance del bloque si se eleva en el alcance global?

Estaba jugando con los ámbitos de JS para comprender mejor el concepto. Haciendo eso, escribí el siguiente script:

 { let a; function x() { let p; var q; } } x();

Sorprendentemente, al depurar en la consola de desarrollo de Chrome, me di cuenta de que si detengo el script en la línea 2 o let a , puedo ver el alcance del bloque con la variable a y la función x como se ve en la captura de pantalla 1.

Además, al registrar las salidas de window.x undefined Sin embargo, tan pronto como salte al siguiente punto de interrupción, que es la línea 4 o let p , el alcance del bloque ya no está allí y se crea un alcance local . Ahora, al iniciar sesión, window.x genera la definición de la función.

Ahora, según tengo entendido, dado que puedo llamar a x() desde el ámbito global, significa que la declaración de la función está disponible en el ámbito global. Entonces, ¿por qué el enlace de la función no está disponible antes de la creación del contexto de ejecución de la función (si se eleva al alcance global)? ¿Y por qué escribir x() en la parte superior del bloque TypeError: x is not a function ?

captura de pantalla 1

Nota: No estoy escribiendo funciones como esta en ninguna parte, solo escribí este script para probar mi comprensión de los ámbitos. Disculpas si esta es una forma incorrecta de escribir funciones.

EDITAR por comentarios:

Chrome y FF se muestran undefined , mientras que Safari muestra la definición de la función.

 console.log(x); // logs undefined { let a; function x() { let p; var q; } } x();

about 4 years ago · Juan Pablo Isaza
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