Символ (Symbol) - это новый тип данных в стандарте ECMAScript 6 (ES6), который представляет собой уникальный и неизменяемый идентификатор. Символы используются для создания уникальных свойств объектов, которые не могут быть перезаписаны или скрыты другими свойствами.

Символы объявляются с помощью функции Symbol(), которая возвращает новый уникальный символ каждый раз при вызове:

const symbol1 = Symbol()
const symbol2 = Symbol()
console.log(symbol1 === symbol2) // Вывод: false

В этом примере, мы создаем два разных символа с помощью функции Symbol(), которые сравниваются между собой с помощью оператора === . Эти символы уникальны и не равны друг другу.

Символы могут также иметь описатель (description), который используется для создания более понятных имен символов:

const symbol = Symbol("My symbol")
console.log(symbol.description) // Вывод: "My symbol"

В этом примере, мы создаем символ с описателем “My symbol” и получаем его описание с помощью свойства description.

Символы могут быть использованы для создания уникальных свойств объектов, которые не могут быть перезаписаны или скрыты другими свойствами:

const symbol = Symbol("My symbol")
 
const obj = {
  [symbol]: "value",
}
 
console.log(obj) // Вывод: { [Symbol(My symbol)]: "value" }
console.log(obj[symbol]) // Вывод: "value"

В этом примере, мы создаем символ symbol с описателем “My symbol” и используем его для создания свойства объекта obj. Это свойство не может быть перезаписано или скрыто другими свойствами, такими как свойства с именами строк.

Символы также используются вместе с встроенными методами объектов, такими как Object.getOwnPropertySymbols() и Reflect.ownKeys(), для доступа к символьным свойствам объектов.

Таким образом, символы предоставляют удобный способ создания уникальных идентификаторов в JavaScript, которые не могут быть перезаписаны или скрыты другими свойствами. Они могут быть использованы для создания уникальных свойств объектов и доступа к ним с помощью встроенных методов объектов.


Назад