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()) // 🤔🤔
- A.
20
- B.
41
- C.
21
- D.
undefined
Respuesta en el primer comentario.
Top comments (1)
Respuesta
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 variabley
pero debe salir a buscar a la variablex
al scope superior, de esta manera se realiza la operación y podemos regresar el resultado41
.