Funktion
Zwei Symbole sind nicht gleich.
let a1 = Symbol(); //不用newlet a2 = Symbol(); console.log(a1===a2); //false
let a1=Symbol.for('abc');let obj={ [a1]:'123', 'abc':345, 'c':456}; console.log('obj',obj); // {abc: 345, c: 456, Symbol(abc): "123"}
[a1] ist das obige Symbol, sein Schlüsselwert ist „abc“,
und es gibt auch einen Schlüssel unten Der Wert ist „abc“, es liegt jedoch kein Konflikt vor.
Methode
Diese Methode sucht den Schlüsselwert global,
If If hat , gibt den Wert zurück;
wenn nicht hat, dann generiert den Schlüsselwert .
let a3=Symbol.for('a3'); //声明keylet a4=Symbol.for('a3'); //找到变量a3对应的key值 console.log(a3===a4); //a3 === a3
Es kann nur der Wert von Symbol() abgerufen werden, kann nicht den Wert gewöhnlicher Eigenschaften abrufen
Zurückgeben Wert:
Array
Instanz
let s5 = Symbol('s5');let s6 = Symbol('s6');let a = { [s5]: 'rs5', [s6]: 'rs6'}Object.getOwnPropertySymbols(a).forEach(function(item){ console.log(a[item]); // rs5 rs6})
Sie kann die Schlüssel- und Wertwerte von Symbol() und Nicht-Symbol
abrufen. Rückgabewert: Array Instanz
let s5 = Symbol('s5');let s6 = Symbol('s6');let a = { [s5]: 'rs5', [s6]: 'rs6'} Reflect.ownKeys(a).forEach(function(item){ console.log(item,a[item]); // Symbol(s5) "rs5" Symbol(s6) "rs6"})
Das obige ist der detaillierte Inhalt vonErläuterung des Symboldatentyps in ES. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!