Një deklaratë është një pohim i emërtuar funksioni; një shprehje cakton një funksion në një ndryshore. Ndryshimi praktik është hoisting.
js
();
() { ; }
();
expressed = () { ; };
Një deklaratë është një pohim i emërtuar funksioni; një shprehje cakton një funksion në një ndryshore. Ndryshimi praktik është hoisting.
();
() { ; }
();
expressed = () { ; };
Deklaratat e funksionit ngriten me trupin e tyre, kështu që e gjithë funksioni ekziston përpara se ekzekutimi të arrijë atë. Një shprehje funksioni është vetëm një vlerë e caktuar në një ndryshore — në pikën e thirrjes të hershme, expressed është ende undefined (me var) ose në TDZ (me 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) { ... }
Deklaratat lexohen mirë për funksionet e emërtuar të nivelit të lartë dhe përfitojnë nga hoisting (mund t'i përcaktoni ato pas përdorimit të tyre). Shprehjet janë të nevojshme për funksionet me shigjeta, callback, IIFE dhe caktimin e kushtëzuar të funksioneve. Funksionet me shigjeta janë gjithmonë shprehje.