Symbol
Symbol(description) Symbol.for(key)
Erzeugt einen eindeutigen Wert – jeder Aufruf von Symbol() liefert einen anderen, auch mit derselben Beschreibung. Er dient als Schlüssel von Eigenschaften, die nicht mit anderen kollidieren und in Object.keys() oder JSON nicht aufgeführt werden.
Parameter
- description – optional, ein Text zur Fehlersuche (
symbol.description). - Symbol.for(key) – gibt ein gemeinsames Symbol aus der globalen Registry zurück (gleicher Schlüssel = gleiches Symbol).
Rückgabewert
Ein Wert vom Typ symbol.
Beispiele
const id = Symbol('id');
const user = { name: 'Jana', [id]: 42 };
console.log(user[id], Object.keys(user), JSON.stringify(user));
console.log(Symbol('id') === Symbol('id'), Symbol.for('app') === Symbol.for('app'), id.description);
Ausgabe:
42 [ 'name' ] {"name":"Jana"}
false true id
Eigenes Durchlaufen eines Objekts mit einer for...of-Schleife über Symbol.iterator:
const range = {
from: 1,
to: 4,
*[Symbol.iterator]() {
for (let i = this.from; i <= this.to; i++) yield i;
},
};
console.log([...range]);
Ausgabe:
[ 1, 2, 3, 4 ]
Worauf Sie achten sollten
- Ein Symbol lässt sich nicht durch Verketten in eine Zeichenkette umwandeln (
'' + symbolwirft einenTypeError) – verwenden SieString(symbol)oderdescription. - Eigenschaften mit einem Symbol sind nicht geheim:
Object.getOwnPropertySymbols()gibt sie zurück.
Browserunterstützung
Baseline – weithin verfügbar: in allen gängigen Browsern seit September 2015, gilt als weithin verfügbar seit März 2018. Ab Version: Chrome 38, Firefox 36, Safari 9; Node.js 0.12.0. Stand: Oktober 2026 (MDN browser-compat-data).