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

151
Vistas
Preguntas sobre el orden de ejecución de JavaScript

Tengo un código Javascript muy simple, no puedo entender completamente el orden de ejecución y la salida.

 function f1() { n = 999; change = function() { n = "Barry"; }; return change; } var result = f1(); result(); console.log(n) change(); console.log(n)

Producción:

 Barry Barry

Según tengo entendido, defino una variable global n, y n = 999. Luego creo una función que definirá globale n a "Barry". y asigne esta función al cambio. y devolver esta variable de cambio.

Luego activé este f1() y cambio el resultado. En este momento, el cambio es una función pero aún no se ejecuta.

Entonces, ¿por qué el primer Console.log devuelve mi Barry ? Entonces el cambio aún no se ha ejecutado...

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

0

No está declarando correctamente sus variables en el alcance con var , let o const , por lo que está contaminando los alcances globales o externos.

n se cambia porque result === change y change establece n en Barry .

about 4 years ago · Juan Pablo Isaza Denunciar

0

La razón de este comportamiento está en esta línea,

 var result = f1(); // n - 999

En este punto, está llamando a la función interna y configurando la n en Barry

 result(); // n - Barry

No estoy seguro de cómo llamas a esta función directamente. Pero espero que sea solo un pseudocódigo.

 change(); // n - Barry

Lo que significa,

 result() === change()
about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Por qué el primer Console.log devuelve mi Barry? Entonces el cambio aún no se ha ejecutado...

Sí, solo está llamando a console.log después de haber llamado a result() . Prueba lo siguiente:

 var n, change; function f1() { n = 999; change = function() { n = "Barry"; }; return change; } console.log(n); var result = f1(); console.log(result === change); console.log(n); result(); console.log(n); change(); console.log(n);

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