53 lines
1.2 KiB
Markdown
53 lines
1.2 KiB
Markdown
---
|
|
title: Spread Operator
|
|
---
|
|
## Spread Operator
|
|
|
|
The spread operator (`...`), allows to get the elements of a collection.
|
|
|
|
One of the most common uses is for `Node` Objects, when using query selectors in the browser, in order to make them iterable Array Objects:
|
|
```javascript
|
|
const paragraphs = document.querySelectorAll('p.paragraph');
|
|
const arr = [...paragraphs];
|
|
```
|
|
|
|
Another use of the spread operator is for Array concatenation:
|
|
```javascript
|
|
const arr_1 = [1, 2, 3, 4]
|
|
const arr_2 = [5, 6, 7, 8]
|
|
const arr_final = [...arr_1, ...arr_2]
|
|
// arr_final = [1, 2, 3, 4, 5, 6, 7, 8]
|
|
```
|
|
|
|
Spread operator can be used to copy an Array.
|
|
```javascript
|
|
const arr_3 = [1, 2, 3, 4]
|
|
const reference = arr_3
|
|
const copy = [...arr_3]
|
|
copy.push(5)
|
|
// arr_3 = [1, 2, 3, 4]
|
|
// copy = [1, 2, 3, 4, 5]
|
|
|
|
The spread operator can also copy enumerable properties from one or more objects onto a new object:
|
|
```javascript
|
|
const obj1 = {
|
|
a: 1,
|
|
b: 2,
|
|
c: 3
|
|
};
|
|
|
|
const obj2 = {
|
|
d: 4,
|
|
e: 5,
|
|
f: 6
|
|
};
|
|
|
|
const newObj = {...obj1, ...obj2);
|
|
|
|
// newObj = { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }
|
|
|
|
```
|
|
### More Information:
|
|
|
|
- [MDN - Spread Syntax](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax)
|