«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Символы и объекты в JS♥

Символы и объекты в JS♥

Опубликовано 8 ноября 2024 г.
Просматривать:547

Symbols and Objects in JS♥

Тип данных символа

Символ — это тип данных в JS. Обычно он используется для создания уникальных ключей и ключей скрытых объектов в Javascript.

Есть два типа символов

  1. Локальные символы — они не зарегистрированы в глобальном реестре символов, и их значения уникальны даже для одного и того же дескриптора.
  2. Глобальные символы — они зарегистрированы в глобальном реестре символов, и их значения не уникальны.

Глобальный реестр символов: Глобальный реестр символов — это пространство, в котором хранятся символы, созданные с помощью Symbol.for.

синтаксис
В примере ниже «john» — это дескриптор, а key_one и key_two — символ.

const key_one = Symbol("john"); //local symbol
const key_two = Symbol.for("john"); //global symbol
console.log(typeof key_one) // symbol
console.log(typeof key_two); //symbol

Ключевое отличие

Дескрипторы одинаковых значений не совпадают в локальных символах.

Как я уже говорил ранее, каждый символ уникален, даже если дескриптор одинаков в локальных символах. Давайте проверим это.

приложение

const key_one = Symbol("john");
const key_two = Symbol("john");
key_one == key_two // false
key_one === key_two //false

Дескрипторы одинаковых значений одинаковы в глобальных символах.

const key_one = Symbol.for("foo");
const key_two = Symbol.for("foo");
console.log(key_one === key_two); //true

некоторые факты об объектах и ​​символах

  1. символы не преобразуются в строку.
  2. Вы не можете получить доступ к обоим символам, используя цикл for...in
  3. Вы не можете получить доступ к обоим символам даже с помощью свойства Object.keys()
  4. Каждый ключ в объектах преобразуется в строковые четные числа.
  5. Вы можете увидеть все символы объекта, используя функцию Object.getOwnPropertySymbols()

приложение

const zero = Symbol("0");
const temp = {
 0:"zero",
 1:"one",
 [zero]:"zero",
 1.1:"one one",
}
const keys = Object.keys(temp); //["0","1","1.1"]
console.log(temp[1.1]) // one one
console.log(Object.getOwnPropertySymbols(temp)) // [Symbol(0)]

как получить дескриптор в Symbol.for()

Используя символ.keyFor(symbol), вы можете получить дескриптор глобальных символов.

const key_one = Symbol.for("john")
Symbol.keyFor(key_one) // "john"
typeof Symbol.keyFor(key_one) //string

Поддержите меня на dev.to и linkedin ?. ТИ?

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/aryan015/symbols-and-objects-in-js-3ko7?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3