Symbol
JavaScript 🟡 MidDéfinition
Type primitif unique et immutable créé par Symbol(). Utilise comme clé de propriété pour éviter les collisions. Les well-known symbols (Symbol.iterator, etc.) customisent le comportement du langage.
Analogie
Un numéro de série unique grave sur une clé : même si deux clés se ressemblent, leurs numéros sont différents.
Exemple de code
const id = Symbol('id');
const user = { [id]: 123, name: 'Alice' };
user[id]; // 123
Object.keys(user); // ['name'] (symbol invisible)
// Well-known
class Range {
*[Symbol.iterator]() { yield 1; yield 2; }
}
Cas d'usage
Créer des propriétés privées-like, définir des protocoles (iterator), éviter les collisions de noms en libs.