L'opérateur rest en JavaScript
Commençons cette leçon par une explication.
Dans toutes les leçons précédentes de cette section, je
ne vous ai pas dit toute la vérité sur l'opérateur ...
En fait, cet opérateur, selon son emplacement dans le code, peut être appelé soit opérateur spread, soit opérateur rest.
Comme vous le savez déjà, lorsque l'opérateur spread
se place devant un tableau ou une chaîne, il les sépare
en valeurs individuelles. L'opérateur rest,
bien qu'il ait la même syntaxe ...,
est destiné à autre chose.
Voyons maintenant à quoi. Imaginons que nous ayons une fonction prenant deux paramètres :
function func(a, b) {
console.log(a);
console.log(b);
}
Vous devriez déjà savoir que si vous passez trop de paramètres à la fonction, cela ne provoquera pas d'erreur :
func(1, 2, 3, 4, 5);
L'opérateur rest permet d'obtenir tous
les paramètres supplémentaires sous forme de tableau. Pour cela,
un paramètre supplémentaire est ajouté à la fonction (obligatoirement
en dernier), précédé de 3 points :
function func(a, b, ...rest) {
}
Ces trois points constituent l'opérateur rest, et le nom
de la variable peut être quelconque, mais
il est également d'usage de l'appeler rest.
Appelons notre fonction avec un nombre excessif
de paramètres et voyons ce qui arrive
dans les paramètres a et b, et ce qui -
reste dans rest :
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // affichera 1
console.log(b); // affichera 2
console.log(rest); // affichera [3, 4, 5]
}
S'il n'y a pas de paramètres supplémentaires, la variable
rest sera un tableau vide :
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // affichera 1
console.log(b); // affichera 2
console.log(rest); // affichera []
}
La fonction peut n'avoir aucun paramètre du tout,
mais on peut tout de même y ajouter rest.
Dans ce cas, la fonction pourra être appelée
avec n'importe quel nombre de paramètres et ils
tous seront placés dans le tableau rest :
function func(...rest) {
console.log(rest);
}