"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Símbolos y Objetos en JS♥

Símbolos y Objetos en JS♥

Publicado el 2024-11-08
Navegar:929

Symbols and Objects in JS♥

Tipo de datos de símbolo

El símbolo es un tipo de datos en JS. Normalmente se utiliza para crear claves únicas y claves de objetos ocultos en Javascript.

Hay dos tipos de símbolos.

  1. Símbolos locales: no están registrados en el registro de símbolos global y los valores son únicos incluso con el mismo descriptor.
  2. Símbolos globales: están registrados en el registro de símbolos global y los valores no son únicos

registro global de símbolos: El registro global de símbolos es un espacio donde se almacenan los símbolos creados con Symbol.for.

sintaxis
En el siguiente ejemplo, "john" es un descriptor y key_one y key_two son 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

Diferencia clave

Los descriptores de los mismos valores no son los mismos en los símbolos locales.

Como dije antes, cada símbolo es único incluso si el descriptor es el mismo en los símbolos locales. Validémoslo.

aplicación

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

Los descriptores de los mismos valores son los mismos en los símbolos globales.

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

algunos datos sobre objetos y símbolos

  1. los símbolos no se convierten en cadenas.
  2. No puedes acceder a ambos símbolos usando for...in loop
  3. No puedes acceder a ambos símbolos incluso con la propiedad Object.keys()
  4. Cada clave de los objetos se convierte en cadenas de números pares.
  5. Puedes ver todos los símbolos de un objeto usando la función Object.getOwnPropertySymbols()

aplicación

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

cómo obtener el descriptor en Symbol.for()

Usando Symbol.keyFor(symbol) puede obtener un descriptor de símbolos globales

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

¿Por favor apóyenme en dev.to y linkedin? ¿TY?

Declaración de liberación Este artículo se reproduce en: https://dev.to/aryan015/symbols-and-objects-in-js-3ko7?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarlo.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3