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.