Damien Flandrin

Développeur Web

Quelle est la différence entre une Déclaration et une Expression de Fonction ?

il y a 5 mois · 2 MIN DE LECTURE
#Javascript 

Il existe deux manières de déclarer des fonctions en Javascript, des expressions de fonction et des déclarations de fonction, la première peut être stockée dans des variables et la seconde, réutiliser n'importe où dans votre code. Vous serez sans doute habitué à voir des déclarations de fonction, pour ma part c'est ce que je connaissais le plus mais c'est plutôt intéressant de connaitre qu'il existe une autre manière.

Cet article peut être sujet à des mises à jour

Déclaration de Fonction

Contrairement à une focction d'expression, Une fonction créée avec une déclaration de fonction peut être appelée avant même qu'elle ait été déclarée car l'interpréteur recherche les variables et les déclaration de fonction avant de parcourir la suite de votre script. Lorsque vous déclarez une fonction, vous pouvez l'appeler plus tard dans votre code mais pour pouvoir appeler la fonction dans votre code, vous devez lui donner un nom.

function addition(a, b) {
    return a + b;
};
var calcul= addition(2, 5) ;

Expression de Fonction

L'expression de fonction est une fonction crée, stockée et traitée comme une variable. Il n'y a généralement pas de nom pour les expressions de fonction c'est pourquoi on les appelles des fonctions anonyme. La fonction est stockée dans une variable et peut être appelé comme n'importe quelle fonction. Toutefois sachez que la fonction n'est traitée uniquement que quand l'interprèteur de votre navigateur lis la déclaration. Cela signifie que vous ne pouvez pas appeler cette fonction avant que l'interprèteur ne l'ai lu et que tout code qui apparaît jusqu'à ce point pourrait potentiellement modifier ce qui se passe à l'intérieur de cette fonction.

var addition = function(a, b) { 
    return a + b;
};
var calcul = addition(2, 5) ;

Immediately-Invoked Function Expression

Appelée communément IFFY, toutes les variables déclarées dans cette fonction anonyme sont isolées contre les autres variables d'autres scripts qui pourraient avoir le même nom. Ceci est dû à la portée des variables appelé scope en anglais, voici un exemple d'IFFY.

var addition = (function(){ 
  var a = 10;
    var b = 20;
    return a + b;
}());
  • Les parenthèses qui entourent notre fonction nous assurent que la fonction est traitée comme une expression.
  • Les deux parenthèses à la fin () permet de dire à l'interpreteur de lire immédiatement notre fonction.

On l'utlisent le plus souvent dés qu'on commance à écrire un nouveau script afin d'isoler l'ensemble de notre code.

Quand utiliser des expressions de fonctions anonymes ?

Ils sont utilisés pour du code qui doit être exécuté qu'une fois, plutôt que d'être appelé à plusieurs reprises par d'autres parties du script. on peut utiliser une fonction anonyme d'expression :

  • pour éviter les conflits entre deux scripts qui peuvent utiliser les mêmes noms de variable que le notre.
  • comme un argument lorsqu'une fonction est appelée (pour calculer la valeur de cette fonction).
  • pour exécuter une tâche lorsqu'un événement se produit.
  • afin d'affecter la valeur d'une propriété à un objet.

···

Damien Flandrin

Je suis développeur web pour l'agence Carredas, je fais principalement du PHP avec Laravel et de l'intégration sur des projets Wordpress.
comments powered by Disqus


Développeur Web - Damien Flandrin