Was ist die Verwendung von Symbolen in es6?

WBOY
Freigeben: 2022-04-25 18:27:11
Original
1823 Leute haben es durchsucht

In es6 kann Symbol als Attributname, definierte Variable oder Konstante verwendet werden, um einen eindeutigen Wert darzustellen. Zwei über Symbol deklarierte Variablen können niemals gleich sein Symbol("Wert")".

Was ist die Verwendung von Symbolen in es6?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, ECMAScript Version 6.0, Dell G3-Computer.

Was ist die Verwendung von Symbolen in es6?

Was ist Symbol?

Symbol ist ein neu hinzugefügter Datentyp in es6, der einen eindeutigen Wert darstellt. In es5 unterteilen wir Datentypen in Basisdatentypen (Zeichenfolge, Zahl, Boolean, undefiniert, Null) und Referenzdatentypen (Objekt). Der neue Symboldatentyp in Es6 ist in Basisdatentypen unterteilt.

Warum gibt es Was? so ein Datentyp?

//别人给了你一个定义好的对象
var obj = {
    name: "xiaoqiang",
    showName: function(){alert(1)}
}
//你拿到对象想给这对象添加新的属性和方法的时候,可能会创建出一个name属性和showName方法
obj.name = "nodeing"
obj.showName = function(){alert(2)}

//这个时候,新增加的方法和属性就会去把原有的方法覆盖,这样就产生了冲突
Nach dem Login kopieren

Da die Eigenschaften und Methoden von Objekten aus Zeichenfolgen bestehen, kann es beim Hinzufügen von Methoden und Eigenschaften zu Konflikten kommen. In es6 wird ein neuer Datentyp hinzugefügt, um eindeutige Werte darzustellen.

Sie können über die Symbolfunktion einen eindeutigen Wert erstellen Wert. Jedes Mal, wenn die Symbol-Funktion ausgeführt wird, wird ein Objekt zurückgegeben. Im obigen Code sind die gedruckten Werte alle Symbol(). Wie können wir unterscheiden, wer s1 und wer s2 ist? Wir können dieses Problem lösen, indem wir hier Parameter übergeben Beachten Sie, dass der Wert von name in [] ausgedrückt werden muss und eine Variable ist, die geändert werden kann

Hinweise

Hinweis 1: Die Parameter in Symbol sind nur Beschreibungen von Symbolen und haben daher keine andere Bedeutung, auch wenn die Beschreibungen keine andere Bedeutung haben das Gleiche, Symbol ist auch anders

Hier können Sie vermuten, dass der Rückgabewert der Symbol-Funktion ein Objekt ist

let s1 = Symbol()
let s2 = Symbol()

console.log(s1 === s2) //false 说明创建出来的s1和s2 并不是相同的
console.log(s1, s2); //Symbol() Symbol()
Nach dem Login kopieren
Hinweis 2: Die Symbol-Funktion kann nicht mit dem Schlüsselwort New aufgerufen werden
//传入的参数就是对当前Symbol的描述,用来区分Symbol
let s1 = Symbol("s1")
let s2 = Symbol("s2")
console.log(s1, s2);  //Symbol(s1) Symbol(s2)
Nach dem Login kopieren
Hinweis 3: Der Symboltyp kann nicht aufgerufen werden bei der Typkonvertierung in eine Zahl umgewandelt werden

let name = Symbol("name");
let show = Symbol("show");

let obj = {
    //设置属性
    [name]: 'xiaoqiang',
    [show](){alert(1)}
};
//取值
console.log(obj[name]);
//调用方法
obj[show]()
Nach dem Login kopieren

Hinweis 4: Symbol kann keine Operationen ausführen (möglicherweise kann der Rückgabewert nicht berechnet werden)

console.log(Symbol("nodeing") === Symbol("nodeing")) //false
Nach dem Login kopieren

Hinweis 5: Wenn Symbol als Objektattribut oder -methode verwendet wird, wenn es nicht zugewiesen ist Für eine Variable gibt es keine Möglichkeit, den Wert abzurufen.

Javascript-Video-Tutorial

,

Web-Frontend

]

Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von Symbolen in es6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
es6
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!