Aller à :

Une fonction est une portion de code qui peut être appelée par d'autres codes ou par elle-même ou par une variable qui se réfère à la fonction. Lorsqu'une fonction est appelée, des arguments lui sont généralement donnés en entrée. La fonction peut également retourner une valeur de sortie. En JavaScript, une fonction est aussi un objet.

Un nom de fonction est un identifiant déclaré dans le cadre d'une déclaration de fonction ou de l'expression d'une fonction. Le fait que le nom de fonction soit déclaré ou exprimé impacte la portée du nom de fonction.

Différents types de fonctions

Une fonction anonyme est une fonction sans nom de fonction :

function () {};
// ou en utilisant la notation de flèche de ECMAScript 2015
() => {};

Une fonction nommée est une fonction avec un nom de fonction :

function foo() {};
// ou en utilisant la notation de flèche de ECMAScript 2015
const foo = () => {};

Une fonction imbriquée (ou fonction interne) est une fonction à l'intérieur d'une autre fonction (square dans l'exemple suivant). Une fonction externe est une fonction qui contient une fonction (addSquares dans l'exemple suivant) :

function addSquares(a,b) {
   function square(x) {
      return x * x;
   }
   return square(a) + square(b);
};
//En utilisant la notation de flèche de ECMAScript 2015
const addSquares = (a,b) => {
   const square = x => x*x;
   return square(a) + square(b);
};

Une fonction récursive est une fonction qui fait appel à elle-même. Voir récursion.

function loop(x) {
   if (x >= 10)
      return;
   loop(x + 1);
};
//En utilisant la notation de flèche de ECMAScript 2015
const loop = x => {
   if (x >= 10)
      return;
   loop(x + 1);
};

Une expression de fonction invoquée immédiatement (IIFE) est une fonction appelée directement après le chargement de la fonction dans le compilateur du navigateur. La façon d'identifier une IIFE est de localiser les parenthèses gauche et droite supplémentaires à la fin de la déclaration de la fonction.

// Erreur (https://en.wikipedia.org/wiki/Immediately-invoked_function_expression)
/*
​function foo() { 
    console.log('Hello Foo'); 
}();
*/

(function foo() {
    console.log("Hello Foo");
}());

(function food() {
    console.log("Hello Food");
})();

Si vous souhaitez en savoir plus sur les IIFE, consultez la page suivante sur Wikipedia : Expression de la fonction immédiatement invoquée

En apprendre plus

Informations Techniques

Étiquettes et contributeurs liés au document

Contributeurs à cette page : loella16, Goofy, htindon
Dernière mise à jour par : loella16,