JavaScript -Symbol Primitiver Typ | Erklärt

JavaScript -Symbol Primitiver Typ | Erklärt
Ein neuer primitiver Typ wird in eingeführt Es6 bekannt als "Symbol“. Symbole sind integrierte Objekte, mit denen einzigartige Eigenschaftstasten für ein JavaScript-Objekt hinzugefügt wurden. Diese einzigartigen Eigentumsschlüssel werden nicht mit den von anderen Skripten hinzugefügten Schlüssel in Konflikt stehen und sind den Mechanismen, die für den Zugriff auf das Objekt verwendet werden, wie z. "für in”Schleife.

Der primitive JavaScript -Symbol -Typ wird erstellt und kann global geteilt werden. Darüber hinaus kann es auch verwendet werden, um die verborgenen Eigenschaften eines Objekts zu definieren. Es gibt auch einige bekannte JavaScript-Symbole, die das gemeinsame Verhalten von JavaScript enthalten.

Diese Beschreibung wird erklären JavaScript -Symbol Primitiver Typ mit Hilfe geeigneter Beispiele. So lass uns anfangen!

So erstellen Sie einen symbol primitiven Typ in JavaScript

Der Globus "Symbol()Die Funktion wird verwendet, um folgendermaßen ein neues JavaScript -Symbol zu erstellen:

lass regid = symbol ();

Hier, "RegidIst ein neuer JavaScript -Symbol primitiver Typ.

Sie können auch die Symbolbeschreibung in der Klammern hinzufügen “()”Der Symbol () -Funktion. Diese Beschreibung wird für Debugging -Zwecke als nützlich angesehen und macht auch Symbole beschreibender:

let regid = symbol ('Registrierungs -ID');
Konsole.log (regid);

Die Ausgabe des angegebenen Code zeigt den primitiven Typ von “anRegidUnd seine Beschreibung:

Beispiel: So erstellen Sie einen symbol primitiven Typ in JavaScript

Im folgenden Beispiel werden wir zwei mit den Namen benannte Symbole erstellen “Name" Und "AlterUnd geben ihre Beschreibungen als Argument an die “weiter“Symbol()Globale Funktion:

Sei name = symbol ('Mitarbeitername'),
Alter = Symbol ('Alter');
Konsole.log (name);
Konsole.log (Alter);

Die Ausführung des oben gegebenen Beispiels zeigt die folgende Ausgabe:

Jetzt werden wir das JavaScript verwenden “Art der"Operator, um festzustellen, ob"Name" Und "AlterVariablen werden als Symbol erstellt oder nicht:

Konsole.log (typeof name);
Konsole.log (typeof Alter);

Wie Sie aus der Ausgabe sehen können, ist die “Art der"Betreiber zurückgegeben"Symbol”Als Art der angegebenen Variablen:

Denken Sie daran, dass Symbole nur mit Hilfe des “erstellt werden“Symbol()Globale Funktion. Für den gleichen Zweck verwenden Sie die “neuDer Bediener wirft einen Fehler, da Symbole primitive Werte sind:

lass regid = new symbol ();

Regid"Symbol wird nicht erstellt und die folgenden"Typeerror" wird gezeigt:

Der vorherige Abschnitt lieferte die Methode zum Erstellen von Symbolen als primitive Typwerte. Jetzt werden wir weitergehen und diskutieren, wie Sie Symbole in JavaScript teilen können.

So teilen Sie einen symbol primitiven Typ in JavaScript

Der "Globales Symbolregister"Unterstützt vom ES6 erlaubt Ihnen, das erstellte Symbol weltweit durch die Verwendung des"Symbol.für()"Methode, anstatt die" zu verwenden "Symbol()”Funktion.

Zum Beispiel erstellen wir eine “Regid"Symbol mit einer Beschreibung verwendet"Symbol.für()" Methode:

lass regid = symbol.für ('Regid');

Wenn das "Symbol.für()"Methode wird ausgeführt, sie sucht nach dem"RegidSchlüssel im globalen Symbolregister; Wenn das "Regid"Symbol existiert bereits in der Registrierung, die"Symbol.für()”Methode gibt es zurück. In einem anderen Fall ein neues ““RegidDas Symbol wird erstellt und dem globalen Symbolregister hinzugefügt.

Jetzt rufen Sie die an “Symbol.für()”Methode beim Bestehen“Regid"Schlüssel als Argument wird das vorhandene zurückgeben"RegidSymbol im globalen Symbolregister:

lass studentid = symbol.für ('Regid');
Konsole.log (regid === studentID);

Die Ausgabe zeigt “WAHR"Für den strengen Vergleich zwischen"Regid" Und "Studenten ID„Da beide in Bezug auf Typ und hinzugefügten Schlüssel gleich sind:

Zur Überprüfung des mit dem verbundenen Schlüssels “Studenten ID”, Wir werden die ausführen „KeyFor ()Methode und übergeben die “Studenten ID”Als Argument:

Konsole.log (Symbol.keyfor (studentId));

Der "keyfor ()"Methode wird zurückgegeben"Regid”Wie der Schlüssel des studentischen Symbols:

Wenn Sie nach einem Symbol suchen, das in der globalen Symbolregistrierung nicht hinzugefügt wird, dann ist das “keyfor ()"Methode wird zurückgegeben"nicht definiertWert für den angegebenen Wert:

SETETEEID = Symbol ('EmployeeId');
Konsole.log (Symbol.Keyfor (EmployeeId));

Hier das "Angestellten ID"Symbol existiert nicht in der globalen Symbolregistrierung, da es mit der" erstellt wird "Symbol()" anstatt "Symbol.für()Methode und wann die “Symbol.für()"Methode sucht es in der globalen Symbolregistrierung, es wurde zurückgegeben"nicht definiert”:

Sie haben gesehen, dass das Erstellen und Teilen von Symbol -Primitivwerten ziemlich einfach ist. Der folgende Abschnitt zeigt, wie Sie diese Symbole in Ihrem JavaScript -Code verwenden können.

So verwenden Sie Symbole zum Erstellen versteckter Eigenschaften eines Objekts in JavaScript

Mit dem JavaScript -Symbol primitiven Wert können Sie erstellen versteckt Eigenschaften eines Objekts. Zu diesem Zweck können Sie eine erstellen “SymbolNutzen Sie es als Eigenschaftschlüssel eines Objekts. Die erstellte Eigenschaft wird von der übersprungen für in Schleife und ein anderes Skript könnten nicht direkt darauf zugreifen, weil die “SymbolIst nicht in anderen Skripten enthalten. Auf diese Weise werden Symbole als ideal angesehen, um Objekteigenschaften zu verstecken.

Beispiel: Verwenden Sie Symbole zum Erstellen versteckter Eigenschaften eines Objekts in JavaScript

Zunächst werden wir eine erstellen "articlestatusObjekt, das die folgenden drei Symbole als verborgene Eigenschaften umfasst:

lass articlestatus =
IN_PROGRESS: Symbol ('Artikel in Bearbeitung'),
Abgeschlossen: Symbol ('Artikel abgeschlossen'),
Finalisiert: Symbol ('Artikel endgültig'),
;

Im nächsten Schritt werden wir ein weiteres Symbol namens hinzufügen “mein Status”:

lass mystatus = symbol ('mystatus');

Hier kommt der aufregende Teil in der “Aufgabe"Objekt, wir werden zwei Eigenschaften hinzufügen, einer ist"Beschreibung,Und der andere ist „[[mein Status]”. „[mein Status]Ist eine berechnete Eigenschaft des Task -Objekts, wie es aus dem abgeleitet istmein StatusSymbol und sein Wert umfasst das “VOLLENDET"Verstecktes Eigentum der"articlestatus" Objekt:

lass task =
[mystatus]: articlestatus.VOLLENDET,
Beschreibung: 'JavaScript -Symbol Primitiver Typ' '
;
Konsole.Protokoll (Aufgabe);

Ausgang

Die oben gegebene Ausgabe bedeutet, dass Symbole perfekt zum Erstellen versteckter Eigenschaften funktionieren, auf die nur mit ihren zugehörigen Objekten zugegriffen werden kann.

Bekannte Symbole in JavaScript

ES6 unterstützt viele vordefinierte Symbole, die JavaScripts gemeinsames Verhalten enthalten, das als "bekannt als"sehr bekanntSymbole. Diese bekannten Symbole repräsentieren die statische Eigenschaft der “Symbol" Objekt.

Schauen wir uns die nützlichsten bekannten Symbole von JavaScript an.

Symbol.Hasinstance in JavaScript

Symbol.Hasinstance ist ein Symbol, das verwendet wird, um zu bestimmen, ob das Konstruktorobjekt das angegebene Objekt wie seine Instanz identifiziert oder nicht.

Syntax des Symbols.Hasinstance in JavaScript

[Symbol.Hasinstance] (Objekt)

Hier das "Symbol.Hasinstance"Symbol akzeptiert eine"ObjektAls Argumentation.

Beispiel: Symbol.Hasinstance in JavaScript

In der Regel wird ein Instanz des Bedieners als „verwendet“Objektinstanztyp„JavaScript ruft die auf“Symbol.HasinstanceSymbol. Dann prüft es, ob das “Objekt"Ist eine Instanz des anderen angegebenen"TypObjekt oder nicht.

Im folgenden Beispiel das Array “[]”Ist keine Instanz der“Buch”Klasse, also die“Instanz"Der Betreiber wird zurückkehren"FALSCH”Als Ausgabe:

Klassenbuch

Konsole.log ([] Instanz des Buches);

Ausgang

Sie können das hinzufügenSymbol.Hasinstance"Symbol zum Definieren von Array"[]"Als Instanz der"Buch" Klasse:

Klassenbuch
statisch [Symbol.hasinstance] (obj)
Rückgabearray.Isarray (obj);


Konsole.log ([] Instanz des Buches);

Ausgang

Daher die "Instanz"Betreiber zurückgegeben"WAHR"Nachdem die angegebene Überprüfung des Arrays durchgeführt wurde"[]”.

Symbol.isconcatspreadable in JavaScript

Der Symbol.isconcatspreadable Das Symbol gibt einen booleschen Wert zurück, der feststellt, ob ein bestimmtes Objekt einzeln zum Ergebnis der “hinzugefügt wird“concat ()Funktion oder nicht.

Syntax des Symbols.isconcatspreadable in JavaScript

[Symbol.isconcatspreadable]: Wert

Hier, "Wert”Wird verwendet, um das zu setzenboolean" Wert von Symbol.isconcatspreadable Symbol, wo “WAHR”Ermöglicht das Symbol, die Objektelemente einzeln hinzuzufügen und“FALSCHWird das angegebene Objekt als Ganzes verkettet.

Beispiel: Symbol.isconcatspreadable in JavaScript

Erstens werden wir eine erstellen “OBJ1JavaScript, das die folgenden Eigenschaften hat:

lass obj1 =
0: 'JS' ',
1: 'Symbol Primitive Typ' ',
Länge: 2
;

Im nächsten Schritt werden wir verkettet “OBJ1" mit ['Lehren'] Array mit dem “concat ()Funktion:

lass info = ['lehren'].concat (obj1);
Konsole.log (info);

Die concat () -Funktion verbreitet die einzelnen Elemente von nicht “OBJ1Während er es mit einer Verkettung mit ['Lehren'] Array:

Wenn Sie die Elemente von individuell hinzufügen möchten “OBJ1”In das Array müssen Sie die hinzufügen Symbol.isconcatspreadable Symbol als Eigenschaft zu “OBJ1"Und setzen Sie seinen Wert auf"WAHR”:

lass obj1 =
0: 'JS' ',
1: 'Symbol Primitive Typ' ',
Länge: 2,
[Symbol.isconcatspreadable]: wahr
;
lass info = ['lehren'].concat (obj1);
Konsole.log (info);

Schauen Sie sich die untergegebene Ausgabe an. Die "OBJ1"Elemente werden einzeln im resultierenden" hinzugefügt "die Info”Array:

Wir haben alle wesentlichen Informationen zusammengestellt, die sich auf den primitiven Typ des JavaScript -Symbols beziehen.

Abschluss

Verwendung der Symbol() Globale Funktion können einen JavaScript -Symbol -primitiven Typ erstellen, der einen eindeutigen Wert enthält, während die Symbol.für() Mit der Methode können Sie ein Symbol erstellen, das weltweit gemeinsam genutzt werden kann. JavaScript -Symbol Primitiver Typ wird hauptsächlich verwendet, um die verborgenen Eigenschaften eines Objekts zu definieren. Diese Beschreibung erklärte JavaScript -Symbol Primitiver Typ mit Hilfe geeigneter Beispiele.