Pensé que había captado el concepto de elevación, pero el siguiente código me confundió. ¿Cómo devuelve 1? ¿Se elevará la función del segundo ejemplo() por encima de la primera?
function example() { return 9; } console.log(example()); function example() { return 1; }Si se iza una declaración de función en una fase de compilación y se ejecuta una expresión de función en la fase de ejecución. ¿Cómo es que el siguiente código devuelve 7? ¿Se debe simplemente a que la expresión de ejemplo se declaró primero?
var example = function() { return 7; } console.log(example()); function example() { return 0; }¡Gracias de antemano!
La razón por la que se llama a var example = function() en lugar de function example() es el orden de elevación.
Las funciones se elevan primero, luego las declaraciones de variables, según ECMAScript 5, sección 10.5, que especifica cómo ocurre la elevación.
Lea más aquí: Orden de elevación en JavaScript