배열과 객체에서 필요한 값을 꺼내고 새 자료 구조를 만듭니다.
구조 분해 할당은 위치나 속성 이름으로 값을 꺼냅니다. spread는 배열 항목이나 객체 속성을 새 컨테이너에 펼칩니다. 복사는 한 단계만 이루어지는 얕은 복사이므로 중첩 객체는 여전히 같은 참조를 공유합니다.
코드를 읽을 때는 const { name } = user; const copy = { ...user }; 부분부터 찾으세요. 현재 값과 실행 순서를 줄마다 적어 보면 문법을 외우지 않아도 결과를 예측할 수 있습니다.
실행하기 전에 예상 결과를 짧게 적은 뒤 options를 새 객체로 복사하면서 dark를 true로 바꾸세요. 실제 출력이 다르면 콘솔에 처음 나타난 오류와 그 직전 값을 차례로 확인하세요.
spread로 복사했다고 중첩 객체까지 독립된 것은 아닙니다. 깊은 복사가 필요한 데이터인지 확인하세요.
직접 바꿔보세요options를 새 객체로 복사하면서 dark를 true로 바꾸세요.