What is the purpose of the 'Symbol' type in JavaScript, and how does it differ from other primitive types?

Symbol — примитив для уникальных идентификаторов, в том числе ключей свойств. Два вызова Symbol с одинаковым описанием создают разные значения.

Короткий ответ

Что ответить на собеседовании

Symbol — примитив для уникальных идентификаторов, в том числе ключей свойств. Два вызова Symbol с одинаковым описанием создают разные значения.

Подробный разбор

Ответ с пояснениями

Symbol — примитив для уникальных идентификаторов, в том числе ключей свойств. Два вызова Symbol с одинаковым описанием создают разные значения.

Symbol('id') !== Symbol('id'): описание служит отладке, а не определяет равенство. Символьный ключ помогает избежать случайных конфликтов с обычными строковыми ключами. Symbol.for('id') использует общий реестр, поэтому повторный вызов возвращает тот же символ. Well-known symbols, например Symbol.iterator, задают протоколы языка. Символы не являются средством сокрытия: ключи доступны через Object.getOwnPropertySymbols.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее