Symbol

JavaScript 🟡 Mid

Definition

Type primitif unique et immutable cree par Symbol(). Utilise comme cle de propriete pour eviter les collisions. Les well-known symbols (Symbol.iterator, etc.) customisent le comportement du langage.

Analogie

Un numero de serie unique grave sur une cle : meme si deux cles se ressemblent, leurs numeros sont differents.

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

Creer des proprietes privees-like, definir des protocoles (iterator), eviter les collisions de noms en libs.

#core#ES6#avance