Question : Expliquez la différence entre les déclarations de fonction et les expressions de fonction en JavaScript.
Réponse :
Les déclarations et expressions de fonctions sont de deux manières de création de fonctions en JavaScript.
Déclaration de fonction :
function foo() { return 5; }
Expression de fonction anonyme :
var foo = function() { return 5; }
Expression de fonction nommée :
var foo = function foo() { return 5; }
Différences du navigateur :
Les déclarations de fonction ont toujours été chargées dans le contexte d'exécution avant tout code. Cependant, les expressions de fonction provoquaient certaines incohérences dans les navigateurs. Plus précisément, dans les versions antérieures de Safari, l'expression de fonction suivante renvoyait une erreur :
var foo = function foo() { return 5; }
Ce problème a depuis été résolu et tous les principaux navigateurs traitent désormais les expressions de fonction de manière cohérente.
Clarification supplémentaire :
Les expressions de fonction sont chargées paresseusement, ce qui signifie qu'elles ne sont chargées que lorsque l'interpréteur atteint la ligne de code où elles sont créées. Cela peut entraîner des problèmes si vous tentez d'appeler une expression de fonction avant son chargement. Les déclarations de fonctions, quant à elles, sont toujours accessibles car elles sont chargées avant toute exécution de code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!