Estoy volviendo a la codificación y tengo curiosidad por saber por qué se sigue llamando a la función checkNum(oddNum) fuera de la declaración if.
Si estoy entendiendo el alcance correctamente, ¿no debería poder llamarse a la función checkNum solo dentro del alcance de la declaración if?
Sí, soy consciente de que hay una manera más fácil de realizar la verificación y no se requiere la función, pero solo estoy practicando y tratando de comprender el alcance. =D
let evenNum = 2; let oddNum = 3; if (evenNum < 5) { checkNum(evenNum); function checkNum(evenNum) { let isEven; isEven = evenNum % 2; if (isEven === 0) { console.log("The number is even"); } else if (isEven != 0) { console.log("The number is odd"); } else { console.log("The number is greater than 5") } } } checkNum(oddNum);EDITAR:
Según javascript.info, esto no funcionará, pero el código parece ser similar.
let age = 16; // take 16 as an example if (age < 18) { welcome(); // \ (runs) // | function welcome() { // | alert("Hello!"); // | Function Declaration is available } // | everywhere in the block where it's declared // | welcome(); // / (runs) } else { function welcome() { alert("Greetings!"); } } // Here we're out of curly braces, // so we can not see Function Declarations made inside of them. welcome(); // Error: welcome is not defined