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
1. Befehlseinführung Der Lesebefehl ist ein integ...
Wenn Sie keine Javascript-Steuerung verwenden möch...
Teilen Sie einen Echtzeituhreffekt, der mit nativ...
Da Ubuntu 20.04 das Netzwerk über Netplan verwalt...
Vorwort Dieser Artikel stellt hauptsächlich die V...
Es gibt drei Seiten A, B und C. Seite A enthält Se...
Was ist Redis Cluster? Redis Cluster ist eine von...
Als eines der am häufigsten verwendeten und wicht...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
Deklarieren Sie den Parameternamen, den Typ und d...
1. Erstellen Sie eine Datenbank 2. Erstellen Sie ...
Die CSS-Technik zum Ändern der Farbe eines Bildes...
1. Problem Es gibt eine Tabelle wie unten gezeigt...
1. Nach der Installation von MySQL 5.6 kann es ni...
HTML steht für Hypertext Markup Language. Heutzut...