Answer
A function declaration declares a function binding, while a function expression produces a function value.
• Function declarations are instantiated when their scope is created.
• A function expression runs when evaluation reaches it.
• Named function expressions can provide a local name useful for recursion and stack traces.
Example
Code
declared();
function declared() { console.log('ready'); }
const expressed = function () { return 'value'; };Output
ready
Quick Revision
Declarations create scoped function bindings; expressions create function values during evaluation.