Maison > interface Web > js tutoriel > Quelle est la différence entre les déclarations de fonction et les expressions en JavaScript ?

Quelle est la différence entre les déclarations de fonction et les expressions en JavaScript ?

Susan Sarandon
Libérer: 2024-12-17 12:03:26
original
653 Les gens l'ont consulté

What's the Difference Between Function Declarations and Expressions in JavaScript?

Comprendre les déclarations de fonction et les expressions en JavaScript

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; }
Copier après la connexion
  • Une déclaration de fonction se charge immédiatement dans le contexte d'exécution avant qu'un code ne soit exécuté.
  • Il est accessible depuis n'importe où dans le script, quelle que soit sa position dans le code.

Expression de fonction anonyme :

var foo = function() { return 5; }
Copier après la connexion
  • Une expression de fonction anonyme crée une fonction qui n'est pas affectée à un nom spécifique.
  • Sa portée est limitée au bloc englobant où il se trouve créé.

Expression de fonction nommée :

var foo = function foo() { return 5; }
Copier après la connexion
Copier après la connexion
  • Une expression de fonction nommée est similaire à une expression de fonction anonyme, sauf qu'elle inclut un nom pour la fonction.
  • Le nom n'est visible que dans le cadre de l'encadrant block.

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; }
Copier après la connexion
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal