Leçons du module (3/4)
Paramètres par défaut et rest
JavaScript te permet de rendre les paramètres optionnels (avec une valeur par défaut)
et d'accepter un nombre variable d'arguments avec l'opérateur rest (...).
Paramètres par défaut
function saluta(nome, prefisso = 'Ciao') {
return `${prefisso}, ${nome}!`;
}
saluta('Anna'); // 'Ciao, Anna!'
saluta('Marco', 'Buongiorno'); // 'Buongiorno, Marco!'La valeur par défaut s'applique uniquement lorsque l'argument est undefined (y compris
lorsqu'il n'est pas transmis). Pour null ou 0, la valeur par défaut ne se déclenche
pas :
function f(x = 10) {
return x;
}
f(); // 10
f(undefined); // 10
f(null); // null
f(0); // 0Rest : ...nomi
Pour accepter un nombre variable d'arguments, rassemble-les dans un tableau à l'aide de ... :
function somma(...numeri) {
let totale = 0;
for (const n of numeri) totale += n;
return totale;
}
somma(); // 0
somma(5); // 5
somma(1, 2, 3, 4); // 10À l'intérieur de la fonction, numeri est un vrai tableau (et non l'objet magique arguments
des anciennes fonctions).
Le paramètre rest doit être le dernier paramètre :
function f(primo, ...altri) {
/* ok */
}
// function f(...altri, ultimo) {} // SyntaxErrorSpread lors de l'appel
L'autre facette de ... est l'opérateur spread, qui "déploie" un tableau en arguments
distincts au moment de l'appel :
function somma(a, b, c) {
return a + b + c;
}
const nums = [1, 2, 3];
somma(...nums); // 6, equivalente a somma(1, 2, 3)À toi de jouer
Définis une fonction `sum(a, b)` où `b` a une valeur par défaut de 0. Elle doit passer les assertions suivantes : sum(5) === 5, sum(2, 3) === 5, sum(0) === 0.
Afficher l'indice
function sum(a, b = 0) { return a + b; }
Solution disponible après 3 tentatives
Exercice de révision
Définis une fonction `mean(...nums)` qui renvoie la moyenne arithmétique de ses arguments, ou 0 si aucun ne lui est passé.
Afficher l'indice
Si nums.length vaut 0, renvoie 0 ; sinon calcule la somme et divise.
Solution disponible après 3 tentatives