Une déclaration est une instruction de fonction nommée ; une expression assigne une fonction à une variable. La différence pratique est le hoisting.
();
() { ; }
();
expressed = () { ; };
Une déclaration est une instruction de fonction nommée ; une expression assigne une fonction à une variable. La différence pratique est le hoisting.
();
() { ; }
();
expressed = () { ; };
Les déclarations de fonction sont hissées avec leur corps, donc la fonction entière existe avant que l'exécution l'atteigne. Une expression de fonction n'est qu'une valeur assignée à une variable — au moment de l'appel précoce, expressed est toujours undefined (avec var) ou dans la TDZ (avec 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) { ... }
Les déclarations se lisent bien pour les fonctions nommées de haut niveau et bénéficient du hoisting (vous pouvez les définir après leur utilisation). Les expressions sont nécessaires pour les arrow functions, les callbacks, les IIFE et l'assignation de fonctions de manière conditionnelle. Les arrow functions sont toujours des expressions.
Une bibliothèque de questions d'entretien IT avec des réponses détaillées — du Junior au Senior.
Faire un don