Symbol — примитив для уникальных идентификаторов, в том числе ключей свойств. Два вызова Symbol с одинаковым описанием создают разные значения.
What is the purpose of the 'Symbol' type in JavaScript, and how does it differ from other primitive types?
Symbol — примитив для уникальных идентификаторов, в том числе ключей свойств. Два вызова Symbol с одинаковым описанием создают разные значения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Symbol — примитив для уникальных идентификаторов, в том числе ключей свойств. Два вызова Symbol с одинаковым описанием создают разные значения.
Symbol('id') !== Symbol('id'): описание служит отладке, а не определяет равенство. Символьный ключ помогает избежать случайных конфликтов с обычными строковыми ключами. Symbol.for('id') использует общий реестр, поэтому повторный вызов возвращает тот же символ. Well-known symbols, например Symbol.iterator, задают протоколы языка. Символы не являются средством сокрытия: ключи доступны через Object.getOwnPropertySymbols.