Les fonctions JavaScript sont définies avec le mot clé function
.
Vous pouvez utiliser une déclaration de fonction ou une expression de fonction.
- Déclarations de fonctions
- Exemple
- Expressions de fonction
- Exemple
- Exemple
- Le constructeur Function()
- Exemple
- Exemple
- Fonction de levage
- Fonctions auto-invoquantes
- Exemple
- Les fonctions Peuvent être utilisées comme Valeurs
- Exemple
- Exemple
- Les fonctions sont des objets
- Exemple
- Exemple
- Fonctions de flèche
- Exemple
- Exemple
Déclarations de fonctions
Plus tôt dans ce tutoriel, vous avez appris que les fonctions sont déclarées avec la syntaxe suivante:
// code à exécuter
}
Les fonctions déclarées ne sont pas exécutées immédiatement. Ils sont « enregistrés pour une utilisation ultérieure » et seront exécutés plus tard, lorsqu’ils seront invoqués (appelés).
Exemple
retour a*b;
}
Essayez-le vous-même »
Les points-virgules sont utilisés pour séparer les instructions JavaScript exécutables.
Comme une déclaration de fonction n’est pas une instruction exécutable, il n’est pas courant de la terminer par un point-virgule.
Expressions de fonction
Une fonction JavaScript peut également être définie à l’aide d’une expression.
Une expression de fonction peut être stockée dans une variable:
Exemple
Essayez-le vous-même »
Une fois qu’une expression de fonction a été stockée dans une variable, la variable peut être utilisée comme une fonction:
Exemple
var z = x(4, 3);
Essayez-le vous-même »
La fonction ci-dessus est en fait une fonction anonyme (une fonction sans nom).
Les fonctions stockées dans des variables n’ont pas besoin de noms de fonction. Ils sont toujours invoqués (appelés) en utilisant le nom de la variable.
La fonction ci-dessus se termine par un point-virgule car elle fait partie d’une instruction exécutable.
Le constructeur Function()
Comme vous l’avez vu dans les exemples précédents, les fonctions JavaScript sont définies avec le mot clé function
.Les fonctions
peuvent également être définies avec un constructeur de fonctions JavaScript intégré appelé Function()
.
Exemple
var x = myFunction(4, 3);
Essayez-le vous-même »
Vous n’avez en fait pas besoin d’utiliser le constructeur de la fonction. L’exemple ci-dessus est le même que l’écriture:
Exemple
var x = myFunction(4, 3);
Essayez-le vous-même »
La plupart du temps, vous pouvez éviter d’utiliser le mot clé new
en JavaScript.
Fonction de levage
Plus tôt dans ce tutoriel, vous avez appris le « levage » (levage JavaScript).
Le levage est le comportement par défaut de JavaScript consistant à déplacer les déclarations vers le haut de la portée actuelle.
Le levage s’applique aux déclarations de variables et aux déclarations de fonctions.
Pour cette raison, les fonctions JavaScript peuvent être appelées avant d’être déclarées:
fonction myFunction(y) {
renvoie y*y;
}
Les fonctions définies à l’aide d’une expression ne sont pas hissées.
Fonctions auto-invoquantes
Les expressions de fonction peuvent être « auto-invoquées ».
Une expression auto-invoquée est appelée (démarrée) automatiquement, sans être appelée.
Les expressions de fonction s’exécuteront automatiquement si l’expression est suivie de ().
Vous ne pouvez pas auto-invoquer une déclaration de fonction.
Vous devez ajouter des parenthèses autour de la fonction pour indiquer qu’il s’agit d’une expression de fonction:
Exemple
var x= »Bonjour!! »; // Je m’invoquerai moi-même
})();
Essayez-le vous-même »
La fonction ci-dessus est en fait une fonction auto-invoquante anonyme (fonction sans nom).
Les fonctions Peuvent être utilisées comme Valeurs
Les fonctions JavaScript peuvent être utilisées comme valeurs:
Exemple
return a*b;
}
var x = myFunction(4, 3);
Essayez-le vous-même »
Les fonctions JavaScript peuvent être utilisées dans les expressions:
Exemple
return a*b;
}
var x = myFunction(4, 3) * 2;
Essayez-le vous-même »
Les fonctions sont des objets
L’opérateur typeof
en JavaScript renvoie « function » pour les fonctions.
Mais, les fonctions JavaScript peuvent mieux être décrites comme des objets.
Les fonctions JavaScript ont à la fois des propriétés et des méthodes.
La propriété arguments.length
renvoie le nombre d’arguments reçus lors de l’appel de la fonction:
Exemple
arguments de retour.length;
}
Essayez-le vous-même »
La méthode toString()
renvoie la fonction sous forme de chaîne:
Exemple
return a*b;
}
var txt= myFunction.toString();
Essayez-le vous-même »
Une fonction définie comme la propriété d’un objet, est appelée méthode de l’objet.
Une fonction conçue pour créer de nouveaux objets s’appelle un constructeur d’objets.
Fonctions de flèche
Fonctions de flèche permet une syntaxe courte pour écrire des expressions de fonction.
Vous n’avez pas besoin du mot-clé function
, du mot-clé return
et des accolades.
Exemple
var x = function(x, y) {
retour x*y;
}
// ES6
const x =(x, y) = > x*y;
Essayez-le vous-même »
Les fonctions de flèche n’ont pas leur propre this
.Ils ne sont pas bien adaptés à la définition de méthodes d’objets.
Les fonctions de flèche ne sont pas hissées. Ils doivent être définis avant d’être utilisés.
Utiliser const
est plus sûr que d’utiliser var
, car une expression de fonction est toujours à valeur constante.
Vous ne pouvez omettre le mot clé return
et les accolades que si la fonction est une seule instruction. Pour cette raison, il pourrait être une bonne habitude de toujours les garder:
Exemple
Essayez-le vous-même »
Les fonctions de flèche ne sont pas prises en charge dans IE11 ou une version antérieure.