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")".
Die Betriebsumgebung dieses Tutorials: Windows 10-System, ECMAScript Version 6.0, Dell G3-Computer.
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)} //这个时候,新增加的方法和属性就会去把原有的方法覆盖,这样就产生了冲突
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
Hier können Sie vermuten, dass der Rückgabewert der Symbol-Funktion ein Objekt istlet s1 = Symbol()
let s2 = Symbol()
console.log(s1 === s2) //false 说明创建出来的s1和s2 并不是相同的
console.log(s1, s2); //Symbol() Symbol()
//传入的参数就是对当前Symbol的描述,用来区分Symbol
let s1 = Symbol("s1")
let s2 = Symbol("s2")
console.log(s1, s2); //Symbol(s1) Symbol(s2)
let name = Symbol("name"); let show = Symbol("show"); let obj = { //设置属性 [name]: 'xiaoqiang', [show](){alert(1)} }; //取值 console.log(obj[name]); //调用方法 obj[show]()
Hinweis 4: Symbol kann keine Operationen ausführen (möglicherweise kann der Rückgabewert nicht berechnet werden)
console.log(Symbol("nodeing") === Symbol("nodeing")) //false
,
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!