Sé que hay 3 formas de crear funciones.
Declaración de función. Expresión de función. Función de flecha.
function foo(){ console.log("boo"); {y
var foo = function(){ console.log("boo"); }Sé que el primero está izado de modo que aunque lo llamemos antes de la función funcionará. Para el segundo, por ser una variable asignada, no funcionará el izado.
Mi pregunta ¿por qué existe tal requisito? Recién comencé a aprender JS y todavía no tiene sentido para mí establecer la diferencia entre esos dos.
Además, ¿qué hay de la función de flecha? ¿Por qué lo necesitamos también?
Gracias
Edit1: Encontré mi respuesta para la pregunta de las funciones de flecha que me parece demasiado avanzada. Lo revisaré sobre la marcha.
¿Cuándo debo usar funciones de flecha en ECMAScript 6?
Todavía no tengo clara la diferencia entre Declaración de función y expresión de función.