Heim  >  Artikel  >  Web-Frontend  >  Erläuterung des Symboldatentyps in ES

Erläuterung des Symboldatentyps in ES

一个新手
一个新手Original
2017-09-27 09:56:481785Durchsuche


Funktion

Deklarieren Sie eine eindeutige Variable

Zwei Symbole sind nicht gleich.

let a1 = Symbol();  //不用newlet a2 = Symbol();
console.log(a1===a2); //false

Schlüsselwertkonflikte verhindern

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

Symbol.for() Schlüsselwert suchen

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

Object.getOwnPropertySymbols() Wert abrufen

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})

Reflect.ownKeys() ruft Schlüssel und Wert ab

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!

Stellungnahme:
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