DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js💊| #221: Explica este código JavaScript

Explica este código JavaScript

Dificultad: Intermedio

const fn = () => { let x = 20; const fn2 = () => { let y = 21; return x + y } return fn2; } let res = fn(); console.log(res()) // 🤔🤔 
Enter fullscreen mode Exit fullscreen mode
  • A. 20
  • B. 41
  • C. 21
  • D. undefined

Respuesta en el primer comentario.

Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta

  • B. 41

Para entender este ejemplo en necesario saber el concepto de lexical scope en JavaScript.
El lexical scope permite que una función pueda acceder a un variable que no este en su propio scope.
De esta manera, la función anidada f2 puede acceder sin problema a la variable y pero debe salir a buscar a la variable x al scope superior, de esta manera se realiza la operación y podemos regresar el resultado 41.