SymboldatentypIn der js-Sprache gab es vor ES6 6 Datentypen. ES6 schlägt den Symboldatentyp neu vor, daher ist Symbol der siebte Datentyp von js, der einen eindeutigen Wert darstellt. Ist ein Datentyp, der einem String ähnelt. Der Zweck besteht darin, Attributnamenkonflikte zu verhindern und sicherzustellen, dass jeder Attributname im Objekt eindeutig ist. lass s1 = Symbol('foo'); lass s2 = Symbol('foo'); s1 === s2 // falsch Der Symboltyp kann einen Zeichenfolgenparameter haben, der die Beschreibung der Symbolinstanz darstellt. Daher sind zwei Symboltypinstanzen mit derselben Beschreibung nicht gleich. Der Grund, warum das Symbol erscheintDie Objekteigenschaftsnamen von ES5 sind alle Zeichenfolgen, was leicht zu Konflikten bei den Eigenschaftsnamen führen kann. Wenn Sie beispielsweise ein von jemand anderem bereitgestelltes Objekt verwenden, diesem Objekt aber eine neue Methode hinzufügen möchten (Mix-In-Modus), kann der Name der neuen Methode möglicherweise mit der vorhandenen Methode in Konflikt geraten. Es wäre schön, wenn es einen Mechanismus gäbe, der sicherstellt, dass jeder Attributname eindeutig ist, sodass Namenskonflikte vermieden werden. Aus diesem Grund führte ES6 Symbol ein Symbolfunktionen
//Symbol erstellen lass s = Symbol(); console.log(s, Typ von s); // Versuchen Sie, 2 Symbole mit demselben Namen zu erstellen. let s2 = Symbol(' 辣鸡rb'); let s3 = Symbol(' s3 rb '); console.log(s2 === s3); //falsch //Verwenden Sie Symbol.for, um dasselbe Symbol zu erstellen let s4 = Symbol.for('würziges Hühnchen rb'); let s5 = Symbol.for('würziges Hühnchen rb'); console.log(s4 === s5); //wahr //Operationen mit anderen Daten können nicht durchgeführt werden let result = s + 100; //Fehler, Lassen Sie uns am Ende des Artikels die Datentypen von js überprüfen Eine Eselsbrücke aus dem Silicon Valley // USONB =>du bist so .niubility Du bist so großartig // u=>undefined // s=>String-Symbol // 0=>Objekt // n=>Nullzahl // b=>Boolesch Nachdem ich darüber nachgedacht hatte, beschloss ich, mehr zu schreiben. Anwendung von SymbolenFügen Sie dem rb-Objekt Up- und Down-Methoden hinzuMethode 1 sei rb = { Name: „Japanische Kriegsverbrecher“, Alter: 500, }; // Verarbeitung mit Symbol // Deklariere ein Objekt, welches zwei Methoden enthält. Die Methoden werden mit symbol() geschrieben let methods = { nach oben: Symbol(), nach unten: Symbol() }; // Füge die Methode rb[methods.up] = function () { hinzu console.log('Verzeihen Sie mir, dass ich über Leute rede'); }; rb[Methoden.down] = Funktion () { console.log('Dieses Biest kennt keine Scham und bittet das chinesische Volk, ihm zu vergeben'); }; konsole.log(rb); Methode 2 Fügen Sie dem rb-Objekt die Methoden sb und dsb hinzu sei rb = { Name: „Japanische Kriegsverbrecher“, Alter: 500, [Symbol('sb')]: Funktion () { console.log('Ich mag japanische Animation'); }, [Symbol('dsb')]: Funktion () { console.log('Aber es hält mich nicht davon ab, die Verbrechen zu hassen, die sie in China begangen haben'); }, }; konsole.log(rb); Integrierte Symbol-Eigenschaftswerte
ZusammenfassenDies ist das Ende dieses Artikels über den Symboldatentyp in ES6. Weitere Informationen zum Symboldatentyp in ES6 finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
>>: Docker legt Port 2375 frei, was zu Serverangriffen und -lösungen führt
Inhaltsverzeichnis 1. Daten vorbereiten Erstellen...
Reguläre Ausdrücke werden häufig verwendet, um Te...
Bei der Arbeit benötigen wir häufig Remote-Server...
In diesem Artikel wird der spezifische JavaScript...
Inhaltsverzeichnis Vorteil 1: Optimierung des Dif...
Inhaltsverzeichnis Vorwort Was ist Deno? Vergleic...
Inhaltsverzeichnis Warum einen Debugger verwenden...
Anwendungsschachtelung ungeordneter Listen Code ko...
Gestern Abend habe ich einen Aufsatz über den Bro...
Beim Schreiben des HTTP-Moduls von nginx müssen d...
Grundlegende Syntax: <Eingabetyp="versteck...
Wie lange ist es her, dass ich meine Kolumne aktu...
Als Neuling, der gerade mit dem Linux-System in K...
Klassifizierung der Farbeigenschaften Jede Farbe ...
Inhaltsverzeichnis Installieren Komponenten impor...