Назад к вопросам
Middle
117
questionbank
Что такое тип Symbol в JavaScript и для чего он используется?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Новый примитивный тип данных, представленный в ES6 (ES2015). Он гарантирует уникальность каждого созданного значения.
Используется для:
- Создания уникальных свойств объектов: Это предотвращает коллизии имен, особенно при добавлении свойств в объекты, которые могут быть расширены сторонним кодом.
const mySymbol = Symbol('мое описание'); const obj = {}; obj[mySymbol] = 'уникальное значение'; // Доступ через символ console.log(obj[mySymbol]); // Не виден при обычной итерации (кроме Object.getOwnPropertySymbols) for (const key in obj) { console.log(key); // Ничего не выведет } - Определения хорошо известных символов (Well-Known Symbols): Встроенные символы, используемые движком JavaScript для определения внутреннего поведения объектов (например,
Symbol.iterator,Symbol.toStringTag).const arr = [1, 2, 3]; // Позволяет итерироваться циклом for...of const iterator = arr[Symbol.iterator](); console.log(iterator.next()); // { value: 1, done: false } - Скрытия деталей реализации: Символы не отображаются в циклах
for...inилиObject.keys(), что помогает скрывать внутренние свойства. Доступ к ним возможен только черезObject.getOwnPropertySymbols().const privateSymbol = Symbol('private'); const myObject = { name: 'Public', [privateSymbol]: 'Private Value' }; console.log(Object.keys(myObject)); // [ 'name' ] console.log(Object.getOwnPropertySymbols(myObject)); // [ Symbol(private) ]