En deklaration er en navngivet funktionserklæring; et udtryk tildeler en funktion til en variabel. Den praktiske forskel er hoisting.
js
();
() { ; }
();
expressed = () { ; };
En deklaration er en navngivet funktionserklæring; et udtryk tildeler en funktion til en variabel. Den praktiske forskel er hoisting.
();
() { ; }
();
expressed = () { ; };
Funktionsdeklarationer bliver hoistet med deres krop, så hele funktionen eksisterer før udførelsen når til den. Et funktionsudtryk er bare en værdi tildelt en variabel — på tidspunktet for det tidlige kald er expressed stadig undefined (med var) eller i TDZ (med let/const).
// expression — for callbacks, conditional definitions, arrow functions
const handler = () => doThing();
const fn = condition ? a : b;
arr.map(x => x * 2);
// declaration — clear, hoisted top-level functions
function calculateTotal(items) { ... }
Deklarationer læses godt til top-niveau navngivne funktioner og drager fordel af hoisting (du kan definere dem efter deres brug). Udtryk er nødvendige for pilefunktioner, callbacks, IIFEs og betinget tildeling af funktioner. Pilefunktioner er altid udtryk.