Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

380
Visualizações
¿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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda