💯 Wie funktioniert Destructuring in Javascript?
JavaScript Destructuring ist eine ES6 (ECMAScript 2015) Funktion, die es ermöglicht, Elemente aus Arrays oder Eigenschaften von Objekten auf eine einfachere und prägnantere Weise in einzelne Variablen zu extrahieren. Es vereinfacht den Code erheblich und macht ihn lesbarer.
1. Array Destructuring
Mit Array Destructuring kannst du einzelne Werte eines Arrays direkt Variablen zuweisen.
Beispiel:
const numbers = [1, 2, 3];
const [a, b, c] = numbers;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
In diesem Beispiel werden die Elemente des Arrays numbers
auf die Variablen a
, b
und c
zugewiesen.
Default-Werte:
Falls ein Element im Array nicht vorhanden ist, kannst du einen Default-Wert festlegen:
const numbers = [1, 2];
const [a, b, c = 3] = numbers;
console.log(c); // 3
Hier wird der dritte Wert (c
) standardmäßig auf 3 gesetzt, da das Array nur zwei Elemente hat.
Überspringen von Elementen:
Du kannst auch bestimmte Elemente überspringen, indem du einfach leere Kommas verwendest:
const numbers = [1, 2, 3, 4];
const [, , c] = numbers; // Das dritte Element wird extrahiert
console.log(c); // 3
2. Object Destructuring
Object Destructuring funktioniert ähnlich wie Array Destructuring, aber hier extrahierst du Werte anhand der Schlüssel des Objekts.
Beispiel:
const person = {
name: 'Alice',
age: 30,
profession: 'Developer'
};
const { name, age, profession } = person;
console.log(name); // Alice
console.log(age); // 30
console.log(profession); // Developer
Hier werden die name
, age
und profession
-Eigenschaften des Objekts person
den entsprechenden Variablen zugewiesen.
Umbenennen von Variablen:
Falls du die extrahierten Werte in eine andere Variablen mit anderem Namen speichern möchtest, kannst du die Variablen umbenennen:
const person = {
name: 'Alice',
age: 30
};
const { name: firstName, age: yearsOld } = person;
console.log(firstName); // Alice
console.log(yearsOld); // 30
Default-Werte in Objekten:
Auch hier kannst du Default-Werte definieren, falls eine Eigenschaft nicht im Objekt vorhanden ist:
const person = {
name: 'Alice'
};
const { name, age = 25 } = person;
console.log(age); // 25
Da age
nicht im Objekt person
vorhanden ist, wird der Default-Wert 25
verwendet.
3. Verschachteltes Destructuring
Du kannst auch verschachtelte Arrays und Objekte destrukturieren:
Beispiel für verschachteltes Array Destructuring:
const nestedArray = [1, [2, 3]];
const [a, [b, c]] = nestedArray;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
Beispiel für verschachteltes Object Destructuring:
const person = {
name: 'Alice',
address: {
city: 'Berlin',
zip: 10115
}
};
const { name, address: { city, zip } } = person;
console.log(city); // Berlin
console.log(zip); // 10115
Hier werden die verschachtelten Werte des Objekts address
direkt in city
und zip
extrahiert.
4. Kombination von Array- und Object Destructuring
Es ist möglich, beide Destructuring-Typen zu kombinieren:
const data = {
title: 'JavaScript Guide',
tags: ['ES6', 'Destructuring', 'JavaScript']
};
const { title, tags: [firstTag, secondTag] } = data;
console.log(title); // JavaScript Guide
console.log(firstTag); // ES6
console.log(secondTag); // Destructuring
Hier extrahieren wir den Wert title
und gleichzeitig die ersten beiden Tags aus dem tags
-Array.
5. Verwendung in Funktionen
Du kannst Destructuring auch in Funktionsparametern verwenden, um Objekte oder Arrays als Parameter zu destrukturieren:
Array Destructuring in Funktionen:
function printCoordinates([x, y]) {
console.log(`X: ${x}, Y: ${y}`);
}
printCoordinates([10, 20]); // X: 10, Y: 20
Object Destructuring in Funktionen:
function printPerson({ name, age }) {
console.log(`Name: ${name}, Age: ${age}`);
}
const person = { name: 'Alice', age: 30 };
printPerson(person); // Name: Alice, Age: 30
Hier werden die Funktionsparameter direkt aus dem übergebenen Objekt extrahiert.
Vorteile von Destructuring:
- Kürzerer Code: Destructuring reduziert die Anzahl der Zeilen und vereinfacht den Code erheblich.
- Lesbarkeit: Variablen werden klarer und lesbarer zugeordnet.
- Flexibilität: Es ermöglicht die direkte Zuordnung von verschachtelten Datenstrukturen und das Umbenennen von Variablen.
Zusammenfassung:
JavaScript Destructuring ist eine sehr nützliche Funktion, die es Entwicklern ermöglicht, Arrays und Objekte effizient und prägnant zu entpacken. Es erleichtert die Arbeit mit komplexen Datenstrukturen und bietet viele Möglichkeiten zur Verbesserung der Code-Lesbarkeit und Wartbarkeit.