Fonctions
- Bloc de code conçu pour effectuer une tâche particulière.
- Est exécuté quand "quelque chose" l'invoque (l'appelle).
- Seul moyen de créer un nouvelle portée en JavaScript avant ES6
- En JS, les fonctions sont la base de toutes interactions
Créer et appeler un fonction
Si on ne spécifie pas de valeur de retour à une fonction, elle retournera undefined
.
function nomFonction() {...}
function ditBonjour() {
console.log("Bonjour !");
}
ditBonjour(); // undefined
// Dans la console : "Bonjour !"
Paramètres
function nomFonction(p1,p2,...) {...}
function ditBonjour(nom, titre) {
console.log("Bonjour " + titre + " " + nom + "!");
}
ditBonjour("James", "Monsieur"); // undefined
// Dans la console : "Bonjour Monsieur James!"
Valeur par défaut des paramètres
Avant ES6, on ne pouvait pas définir de valeur par défaut.
function ditBonjour(nom, titre) {
if (titre === undefined) {
titre = "Prince";
}
console.log("Bonjour " + titre + " " + nom + "!");
}
ditBonjour("James"); // undefined
// Dans la console : "Bonjour Prince James!"
Retourner une valeur
function ditBonjour(nom, titre) {
if (titre === undefined) {
titre = "Prince";
}
return "Bonjour " + titre + " " + nom + "!";
}
ditBonjour("James"); // "Bonjour Prince James!"
Sortir d'une fonction
En utilisant un return
on peut forcer la sortie d'un fonction. Tout le code de la fonction situer après le return
ne sera donc pas exécuté.
function ditBonjour(nom, titre) {
if (titre === undefined){
return; // Sort, stoppe, la fonction
}
return "Bonjour " + titre + " " + nom + "!";
}
ditBonjour("James"); //undefined
Fonctions anonymes
En JavaScript, les fonctions sont des objets, on peut donc stocker des fonctions dans une variable.
var maFonction = function() {
return "Bonjour de ma fonction";
}
maFonction(); // "Bonjour de ma fonction"
INFO
Utiliser un max les fonctions avec des noms, cela vous facilitera la vie lors du débogage.
Si une fonction anonyme déclenche une erreur, dans la console vous aurez comme information :
Erreur déclenchée par "anonymous function"
… oui mais laquelle ???
Fonction “IIFE” Immediately Invoked Function Expression
En plaçant tout votre code dans une "IFFE", cela empêchera vos variables d'entrez en collision avec d'autres scripts. C'est une bonne pratique à respecter si vous utiliser des librairies JS externes.
(function () {
// Placer tout le code de votre application ici...
console.log("Auto-exécution");
})();