Destructure

꺼낼 때 구조분해, 합칠 때 스프레드를 쓴다

두 문법은 `...`처럼 비슷해 보이는 기호도 있지만, 값 추출과 값 복사의 위치가 다르므로 목적을 먼저 나누면 쉽습니다.

Array

순서로 꺼내기

배열 구조분해는 위치를 기준으로 값을 변수에 나눠 담습니다.

Object

이름으로 꺼내기

객체 구조분해는 프로퍼티 이름을 기준으로 필요한 값만 꺼냅니다.

Copy

얕은 복사

스프레드는 한 단계만 펼쳐 새 배열이나 객체를 만듭니다.

Merge

뒤 값 우선

객체 병합에서는 뒤에 오는 프로퍼티가 앞 값을 덮어씁니다.

자주 헷갈리는 지점

기본값

값이 `undefined`일 때만 구조분해 기본값이 적용됩니다.

별칭

객체 속성명을 다른 변수명으로 받을 때는 `key: alias`를 씁니다.

중첩 객체

스프레드는 깊은 복사가 아니므로 내부 객체 공유를 조심합니다.

데이터 흐름

상태 업데이트나 함수 인자 정리에 쓸 때는 어떤 값이 새로 만들어지고 어떤 값이 공유되는지 말할 수 있어야 합니다.