Spread / Rest

JavaScript 🟢 Junior

Définition

L'opérateur ... sert de spread (étaler un iterable) ou rest (collecter les arguments restants). Spread copie superficiellement, rest regroupe dans un tableau.

Analogie

Spread = étaler les cartes sur la table. Rest = ramasser toutes les cartes restantes en un paquet.

Exemple de code

// Spread
const merged = { ...obj1, ...obj2 };
const copy = [...array];
// Rest
function sum(...nums) {
  return nums.reduce((a, b) => a + b, 0);
}

Cas d'usage

Copier/fusionner objets et tableaux de manière immutable, collecter des arguments variadiques.

Anti-pattern

Croire que spread fait une copie profonde (deep clone) : les objets imbriques restent par référence.
#core#ES6#syntaxe

← → au clavier pour passer d'une fiche à l'autre