Cual es la diferencia entre function expression y function declaration?

Hay dos maneras en que una función puede ser definida: expressions(expresiones) y declarations(declaraciones). Las function expressions son usualmente definidas asignándolas a una variable.

var myFunc = function(num) {
return num + 3;
};

Ahora si quiero llamar esta función con un parámetro diferente puedo invocar mi función de esta manera:

myFunc(7) //la salida sera 10

Las function expressions nunca comienzan con la palabra “function”(incluso las que se auto-llaman empiezan con un paréntesis antes de la palabra funcion)

Por el otro lado, las function declarations SI empiezan con la palabra “function” por ejemplo:

function foo(num) {
return num + 3;
}

Las Function declarations definen funciones sin la necesidad de asignarlas a variables.

Ambos métodos hacen lo mismo, entonces he aquí, cuando debería usar function expression y cuando function declaration?

las function declarations así como la palabra var son hoisted (elevadas) a la parte superior del código, las functions expressions NO, por lo tanto esto ayuda con closures y mantener el scope de la variable local.

Por lo tanto La respuesta es Function expressions ya que ademas de esto su resultado es mas limpio y fácil de leer.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.