Maison  >  Article  >  interface Web  >  Symboles et objets en JS♥

Symboles et objets en JS♥

Linda Hamilton
Linda Hamiltonoriginal
2024-10-11 18:38:02693parcourir

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

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

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

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

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

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!

Déclaration:
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
Article précédent:JavaScript est cassé !Article suivant:JavaScript est cassé !