Expresi贸n de funci贸n de JavaScript vs declaraci贸n de funci贸n

Las expresiones de funci贸n y las declaraciones de funci贸n son muy similares en JavaScript, la diferencia es c贸mo el navegador las carga en el contexto de ejecuci贸n.

// function statement
function foo() {
}

// function expression
var foo = function() {
};

<b> declaraciones de funci贸n </b>

Una declaraci贸n de funci贸n se carga antes de que se ejecute cualquier c贸digo. Este comportamiento de las declaraciones de funci贸n se denomina elevaci贸n, que permite utilizar una funci贸n antes de definirla.

alert(foo()); // Alerts "hello from foo".
function foo() { return "hello from foo"; }

<b> expresiones de funci贸n </b>

Una expresi贸n de funci贸n asocia un valor con una variable, como cualquier otra instrucci贸n de asignaci贸n. las expresiones de funci贸n se cargan solo cuando el int茅rprete alcanza la definici贸n de la funci贸n.

alert(foo()); // ERROR!
var foo = function() { return "hello from foo"; }

m谩s informaci贸n sobre conceptos de JavaScript