Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

301
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!