Symbol
Создаёт уникальное значение — например, для ключа, который не пересечётся с другими.
Доступно с: ES2015
Синтаксис
Symbol(description)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| description | string | Необязательный. Описание для отладки. |
Возвращаемое значение
symbolНовое уникальное значение.
Примеры
Каждый символ уникален:
const a = Symbol('id');
const b = Symbol('id');
console.log(a === b);
console.log(typeof a, a.description);Результат:
false
symbol idСимвол как скрытый ключ объекта:
const id = Symbol('id');
const user = { name: 'Anna', [id]: 42 };
console.log(user[id]);
console.log(Object.keys(user));
console.log(JSON.stringify(user));Результат:
42
[
"name"
]
{"name":"Anna"}Примечания
Свойства-символы не видны в Object.keys(), for...in и JSON.stringify(). Символ вызывают без new.
См. также
- Symbol.for — Возвращает общий символ по имени: одинаковое имя — один и тот же символ.
- Symbol.iterator — Особый ключ, который делает объект перебираемым в for...of и spread.
- typeof — Возвращает строку с типом значения.
В учебнике
- Символы — Тип symbol в JavaScript: уникальные значения, символы как ключи объектов, скрытые свойства, глобальный реестр Symbol.for и встроенные символы.