"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Símbolos e objetos em JS♥

Símbolos e objetos em JS♥

Publicado em 2024-11-08
Navegar:137

Symbols and Objects in JS♥

Tipo de dados de símbolo

Symbol é um tipo de dados em JS. Normalmente é usado para criar chaves exclusivas e chaves de objetos ocultos em Javascript.

Existem dois tipos de símbolos

  1. Símbolos Locais - Eles não são registrados no registro global de símbolos e os valores são únicos mesmo com o mesmo descritor.
  2. Símbolos Globais - Eles são registrados no registro de símbolos globais e os valores não são únicos

registro de símbolos globais: O registro de símbolos globais é um espaço onde os símbolos criados usando Symbol.for são armazenados.

sintaxe
No exemplo abaixo, "john" é um descritor e key_one e key_two são símbolos.

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

Diferença principal

O descritor dos mesmos valores não é o mesmo nos símbolos locais

Como eu disse anteriormente, cada símbolo é único, mesmo que o descritor seja o mesmo nos símbolos locais. Vamos validar.

aplicativo

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

Descritores dos mesmos valores são iguais em símbolos globais

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

alguns fatos sobre objetos e símbolos

  1. símbolos não são convertidos em string.
  2. Você não pode acessar ambos os símbolos usando for...in loop
  3. Você não pode acessar ambos os símbolos mesmo com a propriedade Object.keys()
  4. Cada chave em objetos é convertida em números pares de string.
  5. Você pode ver todos os símbolos de um objeto usando a função Object.getOwnPropertySymbols()

aplicativo

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)]

como obter o descritor em Symbol.for()

Usar Symbol.keyFor(symbol) pode obter um descritor de símbolos globais

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

Por favor, me apoie em dev.to e LinkedIn?. TI?

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/aryan015/symbols-and-objects-in-js-3ko7?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3