DEV Community

Cover image for Object Destructuring in JavaScript
Anthony Smith
Anthony Smith

Posted on

Object Destructuring in JavaScript

What Is Object Destructuring in JavaScript?

Object destructuring has been around for a while now, but many developers still don't fully understand the concept and its capabilities. Object destructuring is a simple way to unpack values from an object into variables. Let's take a closer look at how it works.

What Is Object Destructuring?

Object destructuring is a process of unpacking values or properties from an object into distinct variables. It is a convenient way to work with objects and extract properties without having to create separate variables.

Let's take a look at a simple example:

const emp = {
    name: "John Doe",
    position: "Software Developer",
    age: 32
};

let {name, position, age} = emp;
Enter fullscreen mode Exit fullscreen mode

In this example, we define an object emp that contains three keys: name, position and age. To access the value of each key, we can use the variable names as properties of the object.

Using object destructuring, we can extract these values into distinct variables by declaring the variable names in curly braces - {name, position, age}. Now we have each property stored in its own distinct variable.

We can also rename the variables if needed, by adding a colon after the original property name. For example, if we wanted to rename the position variable to title, we would do the following:

let {name, position: title, age} = emp;
Enter fullscreen mode Exit fullscreen mode

Object destructuring is a powerful feature of JavaScript, but it can be tricky to understand. Let's take a look at some more use cases and explore how we can leverage this syntax in our applications.

Use Cases

Object destructuring comes in handy when we have large objects containing multiple properties. If we want to access multiple properties from one object, we can assign them to individual variables instead of having to write out the full object name every time.

For example, let's say we have a user object containing information about a user (i.e., name, email, etc.):

const user = {
    name: "John Doe",
    email: "john@example.com",
    age: 32
};
Enter fullscreen mode Exit fullscreen mode

If we wanted to assign each property to a separate variable, we could do this using object destructuring:

let {name, email, age} = user;

console.log(name);              // "John Doe"
console.log(email);             // "john@example.com"
console.log(age);               // 32
Enter fullscreen mode Exit fullscreen mode

In this case, we can access each property from the user object separately, without having to write out the full object name each time.

Object destructuring is a great tool for extracting pieces of data from an object that we need. But we can also leverage it for another purpose - to set default values for a variable.

Setting Default Values With Object Destructuring

There may be times where we want to assign a default value for a variable if it is not provided. We can do this easily with object destructuring by utilizing the || operator.

For example, let's say we only have a name property in our user object:

const user = {
    name: "John Doe"
};
Enter fullscreen mode Exit fullscreen mode

But, if we tried to destructure the email property, it would be undefined as it doesn't exist in the user object:

let {name, email} = user;

console.log(name);              // "John Doe"
console.log(email);             // undefined
Enter fullscreen mode Exit fullscreen mode

We can use the || operator to assign a default value for the email variable:

let {name, email} = user || "john@example.com";

console.log(name);              // "John Doe"
console.log(email);             // "john@example.com"
Enter fullscreen mode Exit fullscreen mode

Now the email variable will be assigned the provided value ("john@example.com") if it does not exist in the user object.

Conclusion

Object destructuring is an incredibly useful tool for working with objects in JavaScript. It provides us with an easy way to unpack object properties into individual variables. It also allows us to set default values for variables if they are not provided.

Take some time to experiment and explore the possibilities with object destructuring in your own applications. I'm sure you'll find it just as useful :)

Top comments (0)