0Pricing
JavaScript Academy · Урок

Создание уникальных Symbol

Создавайте гарантированно уникальные значения.

«Создание уникальных Symbol» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 4 уроков всего.

Что такое символ

Символ — это примитивный тип, появившийся в современных версиях JavaScript. Каждый символ уникален, даже если два символа имеют одинаковое описание.

const s = Symbol()
console.log(typeof s)

Создание символа

Создать символ можно, вызвав функцию создания символа. Это не конструктор, поэтому оператор создания объекта к ней не применяют.

const id = Symbol()
console.log(typeof id)

Необязательное описание

Можно передать строку с описанием, чтобы упростить отладку. Описание носит исключительно информационный характер и не влияет на уникальность.

const id = Symbol("user id")
console.log(id.description)

Каждый символ уникален

Два символа никогда не бывают равны, даже если их описания совпадают. Эта гарантированная уникальность — их определяющая особенность.

const a = Symbol("x")
const b = Symbol("x")
console.log(a === b)

Без оператора создания объекта

Вызов функции создания символа с оператором создания объекта вызывает ошибку, поскольку символы являются примитивами, а не объектами. Всегда вызывайте её как обычную функцию.

const s = Symbol("ok")
console.log(typeof s === "symbol")

Символы — примитивные значения

Тип символа — строка «символ». Как и другие примитивы, символы неизменяемы и не имеют свойств, которые можно изменить.

const s = Symbol("p")
console.log(typeof s)

Чтение описания

Свойство описания возвращает переданный текст или неопределённое значение, если описание не задано. Это свойство доступно только для чтения.

const named = Symbol("hello")
const anon = Symbol()
console.log(named.description)
console.log(anon.description)

Символы не преобразуются в строки

Символы не преобразуются неявно в строки, что предотвращает их случайное неправильное использование. Чтобы явно получить текст, используйте String или toString.

const s = Symbol("tag")
console.log(String(s))
console.log(s.toString())

Использование символов как констант

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

const RED = Symbol("red")
const GREEN = Symbol("green")
console.log(RED === GREEN)

Хранение символов

Вы можете хранить символы в переменных, массивах и в качестве значений внутри объектов. Их уникальность сохраняется при передаче.

const states = [Symbol("on"), Symbol("off")]
console.log(states.length)
console.log(states[0] === states[1])

Почему уникальность важна

Поскольку никакие два символа не конфликтуют, они идеально подходят для ключей, которые никогда не должны пересекаться с кодом других частей программы. Эту тему мы рассмотрим в следующем уроке.

const key1 = Symbol("meta")
const key2 = Symbol("meta")
const obj = {}
obj[key1] = "a"
obj[key2] = "b"
console.log(obj[key1], obj[key2])

Быстрая проверка

Проверьте свои знания о создании символов.

Повторение

Повторение: символы — это уникальные примитивные значения.

  • Создаются вызовом Symbol, но никогда не создаются с помощью new
  • Необязательное описание помогает только при отладке
  • Каждый символ уникален
  • typeof символа имеет значение symbol
const a = Symbol("x")
const b = Symbol("x")
console.log(a === b)

Часто задаваемые вопросы

Урок «Создание уникальных Symbol» бесплатный?

Да — полный текст урока «Создание уникальных Symbol» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 4 уроков всего.

Чему я научусь в уроке «Создание уникальных Symbol»?

Создавайте гарантированно уникальные значения. Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать JavaScript Academy?

Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Создание уникальных Symbol»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке JavaScript Academy?

Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание уникальных Symbol
  2. Symbol в качестве ключей объектов
  3. Глобальный реестр Symbol
  4. Хорошо известные Symbol
← Назад к JavaScript Academy