Cuando hablamos de funciones en JavaScript, tenemos dos tipos de funciones:
En las funciones declarativas, utilizamos la palabra reservada function al inicio para poder declarar la función:
functionsaludar(nombre) {
console.log(`Hola ${nombre}`);
}
saludar('Diego');
En la expresión de función, la declaración se inicia con la palabra reservada var, donde se generará una variable que guardará una función anónima.
var nombre = function (nombre) {
console.log(`Hola ${nombre}`);
}
nombre(‘Diego’);
<aside> 💡 En la expresión de función, la función podría o no llevar nombre, aunque es más común que se hagan anónimas.
</aside>
A las funciones declarativas se les aplica hoisting, y a la expresión de función, no. Ya que el hoisting solo se aplica en las palabras reservadas var y function.
<aside> 💡 Lo que quiere decir que con las funciones declarativas, podemos mandar llamar la función antes de que ésta sea declarada, y con la expresión de función, no, tendríamos que declararla primero, y después mandarla llamar.
</aside>