La déclaration function
permet de définir une fonction et les paramètres que celle-ci utilise.
Il est également possible de définir des fonctions en utilisant le constructeur Function
et une expression de fonction.
Syntaxe
function nom([param1,[, param2,[..., paramN]]]) { [instructions] }
nom
- Le nom de la fonction.
param
N- Le nom d'un argument à passer à la fonction. Une fonction peut avoir jusqu'à 255 arguments.
instructions
- Les instructions qui constituent le corps de la fonctio.
Description
Une fonction créée via une déclaration de fonction est un objet Function
et possède toutes les caractéristiques (propriétés, méthodes et comportement) d'un objet Function
. Voir la page Function
pour plus d'informations sur ces caractéristiques.
Une fonction peut également être créée en utilisant une expression (voir les expressions de fonctions).
Par défaut, une fonction renvoie undefined
. Pour renvoyer une autre valeur en résultat, une fonction doit utiliser une instruction return
qui définit la valeur à retourner.
Fonctions créées conditionnellement
Il est possible de déclarer des fonctions de façon conditionnelle (c'est-à-dire qu'on peut placer une instruction de déclaration de fonction au sein d'une instruction if
). La plupart des navigateurs, autres que ceux basés sur Gecko, traiteront cette déclaration conditionnelle comme si elle était inconditionnelle (que la condition souhaitée soit vérifiée ou non) (voir cet article (en anglais) pour un aperçu). Pour cette raison, les déclarations de fonctions ne devraient pas être utilisées pour créer des fonctions de façon conditionnelle. Pour ce faire, il faut privilégier les expressions de fonctions.
La « remontée » des déclarations de fonction
Lorsqu'on utilise une déclaration de fonction pour créer une fonction, la définition de la fonction est « remontée ». Il devient donc possible d'utiliser la fonction avant de l'avoir déclarée :
remontée(); // affiche "toto" dans la console function remontée() { console.log("toto"); }
On notera que les expressions de fonctions ne sont pas remontées :
nonRemontée(); // TypeError: nonRemontée is not a function var nonRemontée = function() { console.log("truc"); };
Exemples
Utiliser function
Dans l'exemple qui suit, on déclare une fonction qui renvoie le total des ventes en fonction des nombres d'unités vendues pour les produits a
, b
, et c
.
function calc_ventes(nb_produits_a, nb_produits_b, nb_produits_c) { return nb_produits_a*79 + nb_produits_b * 129 + nb_produits_c * 699; }
Spécifications
Spécification | Statut | Commentaires |
---|---|---|
ECMAScript 2017 Draft (ECMA-262) La définition de 'Function definitions' dans cette spécification. |
Projet | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Définition de fonction' dans cette spécification. |
Standard | |
ECMAScript 5.1 (ECMA-262) La définition de 'Définition de fonction' dans cette spécification. |
Standard | |
ECMAScript 3rd Edition (ECMA-262) La définition de 'Définition de fonction' dans cette spécification. |
Standard | |
ECMAScript 1st Edition (ECMA-262) La définition de 'Définition de fonction' dans cette spécification. |
Standard | Définition initiale. Implémentée avec JavaScript 1.0. |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Voir aussi
- Les fonctions
Function
- Les expressions de fonction
- L'instruction
function*
- L'expression
function*
- Les fonctions fléchées
GeneratorFunction