Heim  >  Artikel  >  Web-Frontend  >  Symbole und Objekte in JS♥

Symbole und Objekte in JS♥

Linda Hamilton
Linda HamiltonOriginal
2024-10-11 18:38:02735Durchsuche

Symbols and Objects in JS♥

Symboldatentyp

Symbol ist ein Datentyp in JS. Es wird normalerweise zum Erstellen eindeutiger Schlüssel und versteckter Objektschlüssel in Javascript verwendet.

Es gibt zwei Arten von Symbolen

  1. Lokale Symbole – Sie sind nicht im globalen Symbolregister registriert und Werte sind auch bei gleichem Deskriptor eindeutig.
  2. Globale Symbole – Sie sind im globalen Symbolregister registriert und die Werte sind nicht eindeutig

Globale Symbolregistrierung: Die globale Symbolregistrierung ist ein Bereich, in dem mit Symbol.for erstellte Symbole gespeichert werden.

Syntax
Im folgenden Beispiel ist „john“ ein Deskriptor und key_one und key_two sind Symbole.

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

Hauptunterschied

Deskriptoren mit gleichen Werten sind in lokalen Symbolen nicht gleich

Wie ich bereits sagte, ist jedes Symbol einzigartig, auch wenn der Deskriptor in lokalen Symbolen derselbe ist. Lasst es uns validieren.

App

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

Deskriptoren gleicher Werte sind in globalen Symbolen gleich

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

einige Fakten über Objekte und Symbole

  1. Symbole werden nicht in Zeichenfolgen umgewandelt.
  2. Sie können mit der for...in-Schleife nicht auf beide Symbole zugreifen
  3. Sie können nicht auf beide Symbole zugreifen, auch nicht mit der Eigenschaft Object.keys()
  4. Jeder Schlüssel in Objekten wird in gerade Zahlenketten umgewandelt.
  5. Sie können alle Symbole eines Objekts mit der Funktion Object.getOwnPropertySymbols() sehen

App

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

So erhalten Sie einen Deskriptor in Symbol.for()

Mit Symbol.keyFor(symbol) können Sie einen Deskriptor globaler Symbole erhalten

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

Bitte unterstützen Sie mich auf dev.to und LinkedIn? TY?

Das obige ist der detaillierte Inhalt vonSymbole und Objekte in JS♥. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:JavaScript ist kaputt!Nächster Artikel:JavaScript ist kaputt!