Back to Blog
JavaScriptSpreadRestES6

JavaScript Spread and Rest Operators

Master the spread and rest operators for arrays, objects, and function parameters.

B
Bootspring Team
Engineering
August 16, 2018
8 min read

The ... syntax serves two purposes: spreading iterables and collecting rest parameters. Here's how to use both effectively.

Spread Operator Basics#

Loading code block...

Spread with Objects#

Loading code block...

Rest Parameters#

Loading code block...

Array Destructuring with Rest#

Loading code block...

Object Destructuring with Rest#

Loading code block...

Function Arguments#

Loading code block...

Copying and Merging#

Loading code block...

Immutable Updates#

Loading code block...

Conditional Spread#

Loading code block...

Common Patterns#

Loading code block...

Converting Iterables#

Loading code block...

Edge Cases#

Loading code block...

Performance Considerations#

Loading code block...

Best Practices#

Spread Arrays: ✓ Copy arrays immutably ✓ Combine arrays ✓ Convert iterables ✓ Spread into function calls Spread Objects: ✓ Shallow copy objects ✓ Merge configurations ✓ Add/override properties ✓ Immutable updates Rest Parameters: ✓ Variable argument functions ✓ Destructuring remainder ✓ Forwarding arguments ✓ Always last parameter Avoid: ✗ Spread in tight loops ✗ Assuming deep copy ✗ Spreading non-iterables ✗ Overcomplicating simple operations

Conclusion#

The spread (...) and rest operators are versatile tools for working with arrays, objects, and function parameters. Use spread for copying, merging, and converting iterables. Use rest for collecting function arguments and destructuring remainders. Remember that spread creates shallow copies - nested objects still share references. These operators enable clean, functional-style JavaScript with immutable data patterns.

Share this article

Help spread the word about Bootspring

Related articles