← 글 목록

notes

35장. 스프레드 문법

모던 JS Deep Dive — 스프레드 문법의 전개·복사와 사용 주의점 정리.

참고: 이웅모 《모던 자바스크립트 Deep Dive》 35장 · [MDN Spread syntax](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax)

...는 이터러블/객체를 펼친다. 배열 복사·병합·함수 인자, 객체 병합에 일상.

const a = [1, 2];
const b = [...a, 3];
Math.max(...a);
const o = { x: 1 };
const p = { ...o, y: 2 };

배열 스프레드

이터러블 필요. 얕은 복사. 중첩 배열은 안쪽 참조 공유.

객체 스프레드

자체 enumerable 문자열 키. 뒤가 이김. null/undefined 스프레드는 무시되는 편.

const defaults = { theme: 'dark' };
const prefs = { theme: 'light' };
console.log({ ...defaults, ...prefs });

rest와 짝

const [head, ...tail] = [1, 2, 3];
const { x, ...rest } = { x: 1, y: 2, z: 3 };
function f(a, ...args) {}

함정

  • 깊은 복사로 오해
  • 유사 배열에 spread 전 Array.from
  • 큰 배열 Math.max(...arr) 인자 한도

실무

  • 불변 업데이트
  • 옵션 병합
  • arguments 대신 rest

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.