Maison > interface Web > js tutoriel > Symboles et objets en JS♥

Symboles et objets en JS♥

Linda Hamilton
Libérer: 2024-10-11 18:38:02
original
764 Les gens l'ont consulté

Symbols and Objects in JS♥

Type de données de symbole

Le symbole est un type de données en JS. Il est généralement utilisé pour créer des clés uniques et des clés d'objets cachés en Javascript.

Il existe deux types de symboles

  1. Symboles locaux - Ils ne sont pas enregistrés dans le registre mondial des symboles et les valeurs sont uniques même avec le même descripteur.
  2. Symboles globaux - Ils sont enregistrés dans le registre mondial des symboles et les valeurs ne sont pas uniques

registre mondial des symboles : le registre mondial des symboles est un espace où sont stockés les symboles créés à l'aide de Symbol.for.

syntaxe
Dans l'exemple ci-dessous, "john" est un descripteur et key_one et key_two sont des symboles.

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
Copier après la connexion

Différence clé

Les descripteurs des mêmes valeurs ne sont pas les mêmes dans les symboles locaux

Comme je l'ai dit plus tôt, chaque symbole est unique même si le descripteur est le même dans les symboles locaux. Validons-le.

application

const key_one = Symbol("john");
const key_two = Symbol("john");
key_one == key_two // false
key_one === key_two //false
Copier après la connexion

Le descripteur des mêmes valeurs est le même dans les symboles globaux

const key_one = Symbol.for("foo");
const key_two = Symbol.for("foo");
console.log(key_one === key_two); //true
Copier après la connexion

quelques faits sur les objets et les symboles

  1. les symboles ne sont pas convertis en chaîne.
  2. Vous ne pouvez pas accéder aux deux symboles en utilisant for...in loop
  3. Vous ne pouvez pas accéder aux deux symboles même avec la propriété Object.keys()
  4. Chaque clé des objets est convertie en chaîne de nombres pairs.
  5. Vous pouvez voir tous les symboles d'un objet en utilisant la fonction Object.getOwnPropertySymbols()

application

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)]
Copier après la connexion

comment obtenir un descripteur dans Symbol.for()

L'utilisation de Symbol.keyFor(symbol) peut vous obtenir un descripteur de symboles globaux

const key_one = Symbol.for("john")
Symbol.keyFor(key_one) // "john"
typeof Symbol.keyFor(key_one) //string
Copier après la connexion

S'il vous plaît, soutenez-moi sur dev.to et linkedin ?. TY ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal