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