Entonces, 'rand' se declara dentro de una función llamada 'makeMysteryFunc', por qué cuando console.log (rand) no imprimirá el valor numérico que se genera aleatoriamente, sino que lo imprimirá como console.log (rand).
¿Alguien puede explicar el alcance aquí?
hi question here question about scoping function makeMysteryFunc () { const rand = Math.random() console.log(rand); if (rand > 0.5) { return function () { console.log(rand); console.log(above 0.5) } } else { return function () { console.log(below 0.5) } } } why cant console.log(rand) be printed when it is declared inside a function ????no entiendo el problema Su ejemplo (después de solucionar los problemas de sintaxis, consulte a continuación), funciona correctamente para mí.
function makeMysteryFunc () { const rand = Math.random(); console.log(rand); if (rand > 0.5) { return function () { console.log(rand); console.log("above 0.5"); } } else { return function () { console.log(rand); console.log("below 0.5"); } } } const f = makeMysteryFunc(); f();Imprime, por ejemplo,
0.5095959852493863 0.5095959852493863 above 0.5