JAVASCRIPT

JavaScript Destructuring: Syntax, Usage, and Examples

JavaScript destructuring is a powerful feature that allows you to extract values from arrays or objects and assign them to variables in a more concise way. It simplifies working with complex data structures by making assignments more readable and reducing repetitive code.

How to Use Destructuring in JavaScript

JavaScript destructuring can be used with both arrays and objects. The syntax differs slightly depending on whether you are destructuring an array or an object.

Array Destructuring

When working with arrays, destructuring allows you to assign multiple values at once.

const colors = ["red", "green", "blue"];
const [firstColor, secondColor] = colors;

console.log(firstColor); // Output: "red"
console.log(secondColor); // Output: "green"

In this example, firstColor gets the first element, and secondColor gets the second element of the colors array.

Object Destructuring

For objects, you can use curly braces {} to extract values by their property names.

const person = { name: "Alice", age: 25 };
const { name, age } = person;

console.log(name); // Output: "Alice"
console.log(age); // Output: 25

Here, name and age are assigned the corresponding values from the person object.

When to Use JavaScript Destructuring

Destructuring can be useful in several scenarios:

  1. Extracting multiple values from an array or object efficiently.
  2. Simplifying function parameters by directly unpacking object properties.
  3. Assigning default values when some properties or array elements might be missing.
  4. Renaming variables while destructuring to avoid conflicts.
  5. Working with deeply nested objects without multiple intermediate assignments.

Examples of JavaScript Destructuring

Using Default Values

If a property or array element does not exist, you can set a default value.

const person = { name: "Alice" };
const { name, age = 30 } = person;

console.log(name); // Output: "Alice"
console.log(age); // Output: 30 (default value is used)

Since the person object does not contain age, it defaults to 30.

Renaming Variables While Destructuring

Sometimes, you may want to rename the extracted values to avoid conflicts.

const user = { id: 1, fullName: "John Doe" };
const { fullName: userName } = user;

console.log(userName); // Output: "John Doe"

Here, the property fullName is renamed to userName in the assignment.

Skipping Elements in Array Destructuring

You can skip array elements by leaving empty spaces in the destructuring pattern.

const numbers = [1, 2, 3, 4, 5];
const [first, , third] = numbers;

console.log(first); // Output: 1
console.log(third); // Output: 3

The second element is skipped by using an empty space between commas.

Swapping Variables with Destructuring

A common use case is swapping values between two variables without using a temporary variable.

let a = 5, b = 10;
[a, b] = [b, a];

console.log(a); // Output: 10
console.log(b); // Output: 5

This swaps a and b in a single line.

Learn More About JavaScript Destructuring

Destructuring Function Parameters

You can destructure objects directly in function parameters for cleaner code.

function greet({ name, age }) {
  console.log(`Hello, my name is ${name} and I am ${age} years old.`);
}

const user = { name: "Jane", age: 28 };
greet(user);
// Output: "Hello, my name is Jane and I am 28 years old."

Instead of passing an entire object and accessing properties separately, the function extracts name and age directly.

Using JavaScript Destructuring with Rest Operator

You can collect remaining values into an array using the rest operator (...).

const fruits = ["apple", "banana", "cherry", "date"];
const [first, second, ...rest] = fruits;

console.log(first); // Output: "apple"
console.log(second); // Output: "banana"
console.log(rest); // Output: ["cherry", "date"]

This helps when you want the first few values but still keep the rest.

Deep Destructuring in JavaScript

When working with nested objects, you can destructure multiple levels at once.

const employee = {
  name: "Sara",
  job: { title: "Developer", department: "Engineering" }
};

const { job: { title, department } } = employee;

console.log(title); // Output: "Developer"
console.log(department); // Output: "Engineering"

This avoids unnecessary intermediate variables and keeps the code clean.

Conditional Destructuring in JavaScript

You can conditionally extract values only if an object exists.

const config = { theme: "dark" };
const { theme, mode = "default" } = config || {};

console.log(theme); // Output: "dark"
console.log(mode); // Output: "default" (fallback value)

If config were undefined, destructuring would still work without errors.

Destructuring in Loops

You can destructure values directly within loops to make iterations more readable.

const users = [
  { name: "Alice", age: 25 },
  { name: "Bob", age: 30 }
];

for (const { name, age } of users) {
  console.log(`${name} is ${age} years old.`);
}
// Output: "Alice is 25 years old."
// Output: "Bob is 30 years old."

This pattern is helpful when working with arrays of objects.

JavaScript destructuring makes working with arrays and objects more efficient by simplifying variable assignments. It allows you to extract values directly into variables, set default values, rename variables, and handle deeply nested structures with ease.

Learn to Code in JavaScript for Free
Start learning now
button icon
To advance beyond this tutorial and learn JavaScript by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH