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

297
Vistas
¿Cuál es el comportamiento de las variables aquí, es decir, el cierre. La salida no está definida, lo que no entiendo.

¿Cuál es el comportamiento de las variables aquí, es decir, el cierre. La salida es "indefinida", lo que no entiendo.

 var x = 21; var test = function () { console.log(x); // output: undefined var x = 20; }; test();
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Javascript crea inicialmente un contexto de ejecución global y un nuevo contexto de ejecución cada vez que se inserta una función en la pila de llamadas. Esto sucede en dos fases: primero crea un entorno variable donde cada variable se almacena en un par clave, valor de nombre_variable: indefinido (mientras que las funciones se almacenan con las definiciones de funciones). Luego comienza a ejecutar el código línea por línea.

Si tuviera que recorrer este ejemplo: contexto de ejecución global: entorno variable {x: indefinido, prueba: definición de función para prueba}

Luego, el código se ejecuta línea por línea y 21 reemplaza undefined por el valor de x. Ahora se llama a la prueba, por lo que se crea un nuevo contexto de ejecución.

Contexto de ejecución de la prueba: { x: indefinido }

Ahora, cuando comienza a ejecutar el código, busca x dentro de este contexto de ejecución y ve que el valor no está definido y lo registra. Si x no estuviera presente en la prueba, habría mirado el contexto de ejecución del padre de la función, que resulta ser el contexto de ejecución global, y habría registrado 21.

Lea sobre el contexto de ejecución: https://www.javascripttutorial.net/javascript-execution-context/ Luego lea sobre el alcance léxico para comprender este comportamiento.

about 4 years ago · Juan Pablo Isaza Denunciar

0

El motor Javascript explicará su código de esta manera:

 var x = 21; var test = function () { var x; console.log(x); // output: undefined x = 20; }; test();
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si olvida poner el parámetro en la prueba de función, el código debería ser así:

 var x = 21; var test = function (x) { //here u should put parameter "x" console.log(x); // The output from calling method var x = 20; //last "x" //if u want to get the value of last "x" should call console.log(x); // the value of of last "x" }; test(x); //here u should put parameter "x"

en código explico cada cosa 😉

Notas: - Las variables definidas con let no se pueden volver a declarar. Las variables definidas con let deben declararse antes de su uso. Variables definidas con let have Block Scope. Redeclarar una variable con let, en otro bloque, ESTÁ permitido pero con var No permitido

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