Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Interpretation der ES6-Datendekonstruktion

亚连
Freigeben: 2018-06-12 11:38:01
Original
1981 Leute haben es durchsucht

Dieser Artikel stellt die Verwendung eines umfassenden Verständnisses der ES6-Datendekonstruktion vor. Jetzt teile ich ihn mit Ihnen und gebe ihn als Referenz.

Eine Objektdestrukturierung

Die Objektdestrukturierungssyntax verwendet Objektliterale auf der linken Seite der Zuweisungsanweisung

let node = {
  type: true,
  name: false
}

//既声明又赋值
let {
  type,
  name
} = node;

//或者先声明再赋值
let type, name
({type,name} = node);
console.log(type);//true
console.log(name);//false
Nach dem Login kopieren

Die Typ- und Namensbezeichner werden beide deklariert Lokale Variablen lesen auch die entsprechenden Attributwerte des Objekts.

Der Wert eines destrukturierenden Zuweisungsausdrucks ist der Wert auf der rechten Seite des Ausdrucks. Ein Fehler wird ausgelöst, wenn die rechte Seite eines Destrukturierungsausdrucks null oder undefiniert ergibt.

Standardwert

Wenn Sie die destrukturierende Zuweisungsanweisung verwenden und die angegebene lokale Variable kein Attribut mit demselben Namen im Objekt findet, wird die Variable verwendet hat den Wert undefiniert zugewiesen

let node = {
  type: true,
  name: false
},
  type, name, value;
({type,value,name} = node);

console.log(type);//true
console.log(name);//false
console.log(value);//undefined
Nach dem Login kopieren

Sie können optional einen Standardwert definieren, der verwendet wird, wenn die angegebene Eigenschaft nicht vorhanden ist.

let node = {
    type: true,
    name: false
  },
  type, name, value;
({
  type,
  value = true,
  name
} = node);

console.log(type);//true
console.log(name);//false
console.log(value);//true
Nach dem Login kopieren

Werte verschiedenen lokalen Variablennamen zuweisen

let node = {
  type: true,
  name: false,
  value: "dd"
}
let {
  type: localType,
  name: localName,
  value: localValue = "cc"
} = node;
console.log(localType);
console.log(localName);
console.log(localValue);
Nach dem Login kopieren

type:localType Diese Syntax bedeutet, das Attribut mit dem Namen type zu lesen und seinen Wert in der Variablen localType zu speichern . Diese Syntax ist das Gegenteil der Syntax herkömmlicher Objektliterale

Verschachtelte Objektstruktur

let node = {
type: "Identifier",
name: "foo",
loc: {
  start: {
    line: 1,
    column: 1
  },
  end: {
    line: 1,
    column: 4
  }
}
}

let {
loc: localL,
loc: {
  start: localS,
  end: localE
}
} = node;

console.log(localL);// start: {line: 1,column: 1},end: {line: 1,column: 4}
console.log(localS);//{line: 1,column: 1}
console.log(localE);//{line: 1,column: 4}
Nach dem Login kopieren

Wenn sich auf der rechten Seite des Doppelpunkts eine geschweifte Klammer befindet, bedeutet dies Folgendes Das Ziel ist im Objekt verschachtelt. In einer tieferen Ebene (loc: {start: localS, end: localE})

Zweite Datendestrukturierung

Die Syntax der Array-Destrukturierung sieht der Objektdestrukturierung sehr ähnlich. Ersetzen Sie einfach das Objektliteral durch ein Array-Literal.

let colors = ["red", "blue", "green"];
let [firstC, secondC, thirdC, thursC = "yellow"] = colors;
console.log(firstC//red
console.log(secondC);//blue
console.log(thirdC);//green
console.log(thursC);//yellow
Nach dem Login kopieren

Sie können im Destrukturierungsmodus auch einige Elemente ignorieren und Variablennamen nur für die Elemente angeben, die Sie interessieren. Das Komma vor

let colors = ["red","green","blue"];

let [,,thirdC] = colors;
console.log(thirdC);//blue
Nach dem Login kopieren

thirdC ist ein Platzhalter für das vorherige Element im Array. Mit dieser Methode können Sie problemlos einen Wert von einer beliebigen Stelle im Array abrufen, ohne anderen Elementen Namen zu geben.

Destrukturierungszuweisung

let colors = ["red","green","blue"],
  firstColor = "black",
  secondColor = "purple";
[firstColor,secondColor] = colors;
console.log(firstColor);//red
console.log(secondColor);//green
Nach dem Login kopieren

Array-Destrukturierung hat einen sehr einzigartigen Anwendungsfall, der die Werte zweier Variablen leicht austauschen kann.

let a =1,b =2;
[a,b] = [b,a];
console.log(a);//2
console.log(b);//1
Nach dem Login kopieren

Verschachtelte Dekonstruktion

let colors = ["red", ["green", "blue"], "yellow"];
let [firstC, [, ssc]] = colors;
console.log(ssc);//blue
Nach dem Login kopieren

Verbleibende Elemente

let colors = ["red", "green", "blue"];
let [firstC, ...restC] = colors;
console.log(firstC);
console.log(...restC);
console.log(restC[0]);//green
console.log(restC[1]);//blue
Nach dem Login kopieren

Array-Klonen kann mit den verbleibenden Elementen durchgeführt werden

let colors = ["red", "green", "blue"];
let [...restC] = colors;
console.log(restC);//["red", "green","blue"]
Nach dem Login kopieren

Drei gemischte Dekonstruktionen

let node = {
type: "Identifier",
name: 'foo',
loc: {
  start: {
    line: 1,
    column: 1
  },
  end: {
    line: 1,
    column: 4
  }
},
range: [0, 3]
}

let {
type,
name: localName,
loc: {
  start: {
    line: ll
  },
  end: {
    column: col
  }
},
range: [, second]
} = node;

console.log(type);//Identifier
console.log(localName);//foo
console.log(ll);//1
console.log(col);//4
console.log(second);//3
Nach dem Login kopieren

Das Obige habe ich für Sie zusammengestellt. Ich hoffe, es wird Ihnen in Zukunft hilfreich sein.

Verwandte Artikel:

Wie implementiert man React-native Bridging Android und was sind die spezifischen Schritte?

Detaillierte Interpretation des Konzepts des $window-Fensterobjekts in AngularJS

Wie man window.resize in VueJs überwacht und wie man es konkret implementiert ?

Wie implementiert man eine Seitenanpassung in AngularJS?

So entwickeln Sie eine benutzerdefinierte Direktive-Direktive in Vue

Das obige ist der detaillierte Inhalt vonDetaillierte Interpretation der ES6-Datendekonstruktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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