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의 값으로 덮어 씌우게 된다는 점이다.