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)
 |