Une fonction (function) est un bloc de code réutilisable permettant de réaliser des tâches répétitives en lui communiquant tout information dont elle aurait besoin pour s’exécuter.
C’est un objet qui fait quelque chose, plutôt que de simplement contenir une ou des valeurs.
Définir une fonction ne devrait pas vous dépayser :
var bienvenue = function() {
alert("nous vous souhaitons la bienvenue !");
};
Si vous entrez ce code dans la console, il ne se passera rien de particulier. Une fonction est juste définie, prête à l’emploi, elle s’appelle quoideneuf et affichera le message de bienvenue quand on va lui demander.
Si on essaie d’appeler cette fonction comme une variable, un tableau ou un objet, rien ne se passera non plus :
bienvenue;
Il faut préciser à JavaScript que nous exécutons une fonction en y ajoutant les parenthèses :
bienvenue();
Ce sont justement ces parenthèses qui vont rendre les fonctions intéressantes car elles vont permettre de passer des infos à la fonction sous forme d’arguments.
Nous allons donc créer un paramètre username qui va attendre qu’on lui envoie une valeur. Dans cet exemple, il attend une chaîne pour la concaténer avec notre message de bienvenue.
var bienvenue = function(username) {
alert("nous vous souhaitons la bienvenue, " + username + " !");
};
bienvenue("Brad Pitt");
Dans ce second exemple, nous prévoyons deux paramètres qui seront calculés entre eux :
var calculAge = function(anneeDeNaissance, anneeCourante) {
alert(anneeCourante - anneeDeNaissance);
};
demandeNaissance = prompt("Quelle est votre année de naissance ?");
demandeAnneeCourante = prompt("En quelle année sommes-nous ?");
calculAge(demandeNaissance,demandeAnneeCourante);
Et si on complexifie un peu, nous pouvons envoyer à la fonction des infos encodées par l’utilisateur et lui faire faire un tas d’opérations avant le résultat final.
Remarquez que ce résultat final utilise la commande return qui clôture la fonction. Si on ajoute encore du code dans la fonctions après cette commande, il sera ignoré.
var presentation = function(nom, naissance, annee) {
var calculAge = annee - naissance;
var phrase = "Bonjour " + nom + ", vous avez " + calculAge + " ans !"
return phrase;
};
var askNom = prompt("Quel est votre nom ?");
var askNaissance = prompt("Quelle est votre année de naissance ?");
var askAnnee = prompt("En quelle année sommes-nous ?");
var total = presentation(askNom, askNaissance, askAnnee);
alert(total);
Les fonctions peuvent donc devenir très complexes et très puissantes lorsque nous les combinons entre elles.
