Destructuring und Spread in JavaScript – Objekte und Arrays elegant auspacken
Mit Destructuring holst du gezielt Werte aus Objekten und Arrays, mit dem Spread-Operator kopierst und kombinierst du sie. Zusammen sparen sie dir jede Menge Zwischenvariablen – und den unbeabsichtigten Mutations-Bug.
Zwei ES6-Features nutze ich in fast jeder Datei: Destructuring (Werte auspacken) und der Spread-Operator ... (Werte kopieren/verteilen). Zusammen machen sie Code kürzer und vermeiden versehentliche Änderungen an geteilten Objekten.
Destructuring: gezielt auspacken
const user = { name: "Mia", role: "admin", stadt: "Köln" };
const { name, role } = user; // name = "Mia", role = "admin"
const { stadt: ort = "unbekannt" } = user; // umbenennen + Standardwert
// Auch bei Arrays und in Funktions-Parametern:
const [erster, zweiter] = ["a", "b", "c"];
function greet({ name, role }) {
return `Hallo ${name} (${role})`;
}Statt user.name fünf Mal zu schreiben, holst du dir die Felder einmal heraus. In Parametern ist es besonders schön: Der Funktionskopf zeigt sofort, was gebraucht wird.
Spread: kopieren statt mutieren
const basis = { theme: "dark", lang: "de" };
// neues Objekt mit Änderung – basis bleibt unangetastet:
const config = { ...basis, lang: "en" }; // { theme:"dark", lang:"en" }
// Arrays zusammenfügen:
const alle = [...ersteListe, ...zweiteListe];Der Schlüssel: Du erzeugst eine flache Kopie und überschreibst nur, was du willst. Genau dieses Muster brauchst du in React/State-Management ständig, um Zustände nicht direkt zu verändern.
Eine Falle: es ist nur eine flache Kopie
const kopie = { ...original };
kopie.adresse.stadt = "Bonn"; // ändert auch original.adresse!Verschachtelte Objekte teilen sich weiter dieselbe Referenz. Für tiefe Kopien nimmst du structuredClone(original).
Destructuring und Spread halten meinen Frontend-Code schlank und frei von Mutations-Bugs. Mehr Snippets auf code.bymw.de.
Quellen
Du brauchst mehr als ein Snippet?
Ich entwickle Android-Apps in Kotlin und moderne Websites für Selbstständige und kleine Unternehmen — von der ersten Idee bis zum Release.
Projekt anfragen →Verwandte Snippets
toSorted, toReversed und with: Arrays sortieren, ohne das Original zu zerstören
array.sort() sortiert nicht eine Kopie, sondern das Array selbst – und genau daran ist schon mancher Zustand im Frontend stillschweigend kaputtgegangen. Seit ES2023 gibt es zu jeder dieser Methoden eine Variante, die eine Kopie zurückgibt.
Aufzählungen richtig verketten mit Intl.ListFormat
"a, b und c" von Hand zusammenzubauen geht fast immer schief – bei einem Element, bei zwei Elementen, beim letzten Komma. Intl.ListFormat macht es richtig, in jeder Sprache, ganz ohne Bibliothek.
requestAnimationFrame – die Animationsschleife, die zum Bildschirm passt
setInterval(schritt, 16) läuft auf einem 144-Hz-Monitor anders als auf einem alten Handy – und im Hintergrundtab einfach weiter. requestAnimationFrame löst beides, wenn man die verstrichene Zeit mitrechnet statt Bilder zu zählen.