AskHandle Blog

What Is The JavaScript Spread Operator And How Do You Use It?

December 11, 2025Nina Kimes3 min read

What Is The JavaScript Spread Operator And How Do You Use It?

The spread operator (...) is a helpful feature in JavaScript that makes it easier to work with arrays and objects. When writing code, you might need to copy elements from one array to another or combine multiple objects. The spread operator does this job in a clean and simple way.

Basic Syntax and Usage

The spread operator uses three dots (...) before an array or object. These dots tell JavaScript to spread out or expand the elements inside. Here's a basic example:

javascript
1const fruits = ['apple', 'banana'];
2const moreFruits = [...fruits, 'orange'];
3// Result: ['apple', 'banana', 'orange']

Working with Arrays

One common task is combining multiple arrays. Instead of using methods like concat(), you can use the spread operator to merge arrays quickly:

javascript
1const vegetables = ['carrot', 'broccoli'];
2const fruits = ['apple', 'banana'];
3const allFood = [...vegetables, ...fruits];
4// Result: ['carrot', 'broccoli', 'apple', 'banana']

The spread operator also works great for creating copies of arrays. This is useful when you want to keep the original array unchanged:

javascript
1const original = [1, 2, 3];
2const copy = [...original];
3copy.push(4);
4// original stays [1, 2, 3]
5// copy becomes [1, 2, 3, 4]

Using with Objects

The spread operator works with objects too. You can create new objects by combining existing ones:

javascript
1const person = {name: 'John', age: 30};
2const job = {title: 'Developer', company: 'Tech Corp'};
3const profile = {...person, ...job};
4// Result: {name: 'John', age: 30, title: 'Developer', company: 'Tech Corp'}

You can also use it to update specific properties while keeping others the same:

javascript
1const settings = {theme: 'dark', sound: 'on', notifications: true};
2const updatedSettings = {...settings, sound: 'off'};
3// Result: {theme: 'dark', sound: 'off', notifications: true}

Function Arguments

The spread operator makes passing multiple arguments to functions much easier. You can spread an array into individual arguments:

javascript
1function add(x, y, z) {
2    return x + y + z;
3}
4
5const numbers = [1, 2, 3];
6const sum = add(...numbers);
7// Result: 6

Common Use Cases

Many developers use the spread operator in their daily work. Here are some practical examples:

  1. Adding items to the middle of an array:
javascript
1const numbers = [1, 2, 5, 6];
2const complete = [1, 2, ...numbers.slice(2)];
  1. Combining default options with user settings:
javascript
1const defaultConfig = {port: 3000, mode: 'development'};
2const userConfig = {mode: 'production'};
3const finalConfig = {...defaultConfig, ...userConfig};
  1. Creating a quick copy of a DOM elements list:
javascript
1const nodeList = document.querySelectorAll('div');
2const divArray = [...nodeList];

Limitations and Tips

The spread operator works well with arrays and objects, but it only creates a shallow copy. This means nested objects or arrays will still reference the original values. For deep copies, you'll need different approaches.

The spread operator also can't be used with certain types of objects, like built-in objects that aren't iterables. Make sure your target is spreadable before using this feature.

Performance-wise, the spread operator is efficient for small to medium-sized arrays and objects. For very large data structures, traditional methods might work better.

The spread operator is a valuable tool in modern JavaScript. It simplifies many common coding tasks and makes your code cleaner and more readable. Whether you're working with arrays, objects, or function arguments, the spread operator can help you write better code with less effort.