Destructuring in ES6: ES6 Basics

Patrick Karsh
3 min readSep 21, 2023

--

Destructuring in ES6 is one of the most prominent features introduced in the JavaScript ES2015 specification. It offers a simpler and more intuitive way of extracting multiple pieces of data from arrays and objects. While this might sound complex, once you understand its syntax and applications, you’ll appreciate the brevity and clarity it introduces to your code.

What is Destructuring?

In essence, destructuring allows for binding a set of variables to a corresponding set of values. If you’ve ever written code where you pulled out individual elements from an array or properties from an object, destructuring is going to be a breath of fresh air.

Array Destructuring

Traditionally, if you wanted to extract individual elements from an array, you would need to access them using their index. With destructuring, this process becomes streamlined.

Traditional approach:

const fruits = ['apple', 'banana', 'cherry'];
const apple = fruits[0];
const banana = fruits[1];

Using destructuring:

const [apple, banana] = ['apple', 'banana', 'cherry'];
console.log(apple, banana); // Outputs: apple banana

You can also skip values if you’re interested in specific elements:

const [first, , third] = ['apple', 'banana', 'cherry'];
console.log(first, third); // Outputs: apple cherry

Object Destructuring

Objects follow a similar pattern, with the main difference being that you’re extracting based on property names rather than order.

Traditional approach:

const student = {
name: 'John',
age: 25
};
const studentName = student.name;
const studentAge = student.age;

Using destructuring:

const { name, age } = {
name: 'John',
age: 25
};
console.log(name, age); // Outputs: John 25

For situations where you’d like to rename the variables:

const { name: studentName, age: studentAge } = student;
console.log(studentName, studentAge); // Outputs: John 25

Diving Deeper: Advanced Destructuring

Default Values

Set defaults for potential undefined values.

const { name, age, country = 'USA' } = {
name: 'John',
age: 25
};
console.log(country); // Outputs: USA

Nested Destructuring

Extract values from deeper levels.

const person = {
name: 'Alice',
details: {
age: 30,
hobby: 'reading'
}
};
const {
name,
details: { age, hobby }
} = person;
console.log(name, age, hobby); // Outputs: Alice 30 reading

Function Parameter Destructuring

Function arguments can also be destructured to improve readability.

function displayPerson({ name, age }) {
console.log(`${name} is ${age} years old.`);
}
displayPerson({ name: 'John', age: 25 }); // Outputs: John is 25 years old.

Conclusion

Destructuring in ES6 is not just a syntactic sugar. It provides a more organized, readable, and effective way of handling data structures. Whether you’re dealing with arrays or objects, the ability to extract values concisely and intuitively greatly improves the developer experience. The next time you find yourself plucking values from arrays or objects, give destructuring a try!

--

--

Patrick Karsh
Patrick Karsh

Written by Patrick Karsh

NYC-based Ruby on Rails and Javascript Engineer leveraging AI to explore Engineering. https://linktr.ee/patrickkarsh

No responses yet