Esittely on nimetty funktiolause; lauseke antaa funktion muuttujaan. Käytännön ero on hoisting.
js
// Declaration — fully hoisted, callable before its line
();
() { ; }
();
expressed = () { ; };
Esittely on nimetty funktiolause; lauseke antaa funktion muuttujaan. Käytännön ero on hoisting.
// Declaration — fully hoisted, callable before its line
();
() { ; }
();
expressed = () { ; };
Funktioesittelyt nostetaan koko runkineen, joten koko funktio on olemassa ennen kuin suoritus saavuttaa sen. Funktiolauseke on vain arvo, joka on annettu muuttujaan — varhaisen kutsun kohdalla expressed on vielä undefined (var-tapauksessa) tai TDZ:ssä (let/const-tapauksessa).
// 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) { ... }
Esittelyt lukeutuvat hyvin ylätason nimetyille funktioille ja hyötyvät hoistingista (voit määritellä ne käytön jälkeen). Lausekkeet ovat välttämättömiä nuolille funktioille, callback-funktioille, IIFE-funktioille ja funktioiden ehdolliseen antamiseen. Nuoli funktiot ovat aina lausekkeita.