В JavaScript ES6 (также известном как ECMAScript 2015), 'Символ' ('Symbol') является особой категорией данных, введенной для создания уникальных и неизменяемых идентификаторов. Они особенно полезны, когда вы хотите создать значения, которые гарантированно не совпадут с другими и не будут изменены.
Символы представляют собой новый примитивный тип данных в JavaScript и могут использоваться как уникальные идентификаторы объектов. Такая уникальность символов особенно полезна, когда вы создаете функцию или объект, которые производят или обрабатывают данных, и вам нужен уникальный идентификатор для этих данных. Например, если вы создаете хеш-таблицу и хотите гарантировать, что каждый ключ уникален, вы можете использовать символы вместо строк или чисел.
Символы создаются через вызов функции Symbol()
. Например:
let symbol1 = Symbol();
let symbol2 = Symbol('description'); //добавляем описание для отладки
Важно понимать, что каждый символ уникален. Даже если вы создадите два символа с одним и тем же описанием, они все равно будут разными:
let symbol3 = Symbol('test');
let symbol4 = Symbol('test');
console.log(symbol3 === symbol4); // Выведет: false
Символы могут быть использованы в качестве ключей для свойств объекта, это позволяет добавлять новые свойства без опасности изменить или переопределить существующие свойства.
Помимо создания уникальных идентификаторов, символы также имеют и другие применения в современном JavaScript. Например, они используются для создания "скрытых" свойств объекта, которые не могут быть обнаружены или изменены по умолчанию. Они также могут быть использованы для определения пользовательских итераторов, которые определяют то, как объекты могут быть перебраны в цикле.
В заключении, символы это мощный инструмент в ES6+. Они предоставляют уникальную и защищенную манеру идентификаций как для создания уникальных идентификаторов, так и дляпо разработки более сложных и надежных структур данных.