FRONTEND/JavaScript

spread 문법과 rest문법

MarkLEE 2021. 4. 25. 18:13

spread는 묶여 있던것들을 'spread'한다고 생각하자. 

e.g. let arr1 = [1, 2, 3, 4, 5];

let arr2 = [9, ...arr1, 10];

let arr3 = 9, arr1, 10];

을 하게 되면 arr2 = [9, 1, 2, 3, 4, 5, 10]     , arr3 = [9, [1, 2, 3, 4, 5], 10]이 되게 된다. 

 

간단해 보이지만, 주의해볼점은 객체에서의 사용에 있어서이다. 

let obj1 = { foo: 'bar', x: 42 };
let obj2 = { foo: 'baz', y: 13 };
let clonedObj = { ...obj1 };
let mergedObj = { ...obj1, ...obj2 };
을 하게 된다면, mergedObj는 {foo: "baz", x: 42, y: 13} 가 된다. 
, 원래 가지고 있던 key의 value를 무시하고, merge할때 obj2의 값으로 덮어 씌우게 된다는 점이다. 

'FRONTEND > JavaScript' 카테고리의 다른 글

reduce함수의 활용  (0) 2021.05.09
고차함수(map, filter, reduce)  (0) 2021.05.07
클로저(Closure)  (0) 2021.04.25
원시자료형(primitive type) vs 참조 자료형(reference type)  (0) 2021.04.25
for...in 과 for...of  (0) 2021.04.19