A function expression creates a function value as part of a statement. Like other values, it can be assigned to a variable or property, passed as an argument, or returned from another function. It need not have a name, though named function expressions are also possible. section 3.3 section 3.3.1 section 3.5
A function in several roles
var myFunc = function(){}; myFunc(function() { return function(){}; }); section 3.3.1
The key contrast with a function declaration is placement: a declaration stands as a separate statement, while an expression belongs within one. Their differences can also affect when a function is available for invocation. section 3.3.1 section 3.3
