📦 Unpack Like Python
Accessing nested properties? const x = obj.prop.nested? Verbose. Destructuring extracts values from objects and arrays elegantly. One line replaces five.
❌ Old Way
const name = user.name; const age = user.age; const email = user.email;
✅ Destructuring
const { name, age, email } = user;
🎯 Advanced Patterns
// Rename variables
const { name: userName, age: userAge } = user;
// Default values
const { name, role = 'guest' } = user;
// Nested destructuring
const { address: { city, country } } = user;
// Rest operator (collect remaining properties)
const { name, ...rest } = user;
// Swap variables
[a, b] = [b, a];
// Function parameters
function greet({ name, age }) {
console.log(`Hello ${name}, you are ${age}`);
}
📡 API Response Example
const response = {
data: {
user: {
id: 123,
profile: { name: 'Bob', avatar: 'avatar.jpg' },
stats: { followers: 1000 }
}
}
};
// Extract deeply nested values in one line!
const {
data: {
user: {
id: userId,
profile: { name: userName, avatar },
stats: { followers }
}
}
} = response;
💡 Pro Tips
- Computed property names: const { [key]: value } = obj
- Don’t overdo nesting: Deep destructuring is hard to read
- Use TypeScript: Get autocomplete for destructured properties
- Combine with spread: const newObj = { …user, age: 31 }
“Refactored React components to use destructuring. 50 lines of ‘const x = props.x’ became 1 line. Code so much cleaner. Should’ve learned this years ago.”
