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

209
Vistas
Javascript var, let y function

 let x = '1' function first(){ console.log(x) } x='2' function second(){ let x='3' first() } second()

Mi pregunta es, ¿por qué la respuesta es '2' en lugar de '3'? Sé que let es el alcance del bloque y var es el alcance de la función, pero simplemente no lo entiendo bien. Por favor, ayúdame aquí, ¡muchas gracias!

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

0

Está asignando 3 a una variable local, solo tiene un efecto dentro de la segunda función

Este ejemplo funciona:

 let x = '1' function first(){ console.log(x) } x='2' function second(){ x='3' first() } second()

about 4 years ago · Juan Pablo Isaza Denunciar

0

Inicialmente, la función first no tiene idea de qué se trata x. por lo que buscó automáticamente en el ámbito superior.

con mucho gusto, en el ámbito global hay x definición.

Por lo tanto, cuando este script se inicializó, la función console.log in function first reserva la dirección de memoria de x y observa esa variable global todo el tiempo.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto se debe a shadowing .

En JavaScript, las variables con el mismo nombre se pueden especificar en varias capas de ámbito anidado. En tal situación, las variables locales ganan prioridad sobre las variables globales. Si declara una variable local y una variable global con el mismo nombre, la variable local tendrá prioridad cuando la use dentro de una función o bloque.

Y en su caso, no hay una variable local definida dentro de su función first() , por lo que tomará el valor de x = 2 de la variable global.

 let x = '1' function first() { console.log(x) } x = '2' function second() { let x = '3' first() } second()

Vea el siguiente código, si ha declarado x=4 dentro de first() , devolverá el valor 4 instead of 2

 let x = '1' function first() { x = '4' console.log(x) } x = '2' function second() { let x = '3' first() } second()

Echa un vistazo a esto si quieres saber más sobre JavaScript Variable Scope and Hoisting : https://www.sitepoint.com/demystifying-javascript-variable-scope-hoisting/

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