본문 바로가기
Books/모던 JS Deep Dive ✔️

[모던 JS Deep Dive] 35장 - 스프레드 문법

by Aaron-Kim 2022. 1. 20.

35.0 스프레드 문법

  - ES6, 스프레드 문법: 하나로 뭉쳐 있는 여러 값들의 집합을 펼쳐서 개별적인 값들의 목록으로 만듦

  - for ... of문으로 순회 가능한 이터러블에 한정해서 사용 가능

  - 스프레드 문법의 결과는 값이 아님 (값 생성하는 연산자 아님)

    - 변수에 할당 불가

  - 스프레드 문법 사용 가능한 곳 (쉼표로 구분한 값의 목록을 사용하는 문맥에서만 가능)

    - 함수 호출문의 인수 목록

    - 배열 리터럴의 요소 목록

    - 객체 리터럴의 프로퍼티 목록

35.1 함수 호출문의 인수 목록에서 사용하는 경우

  - Math.max(가변인자)

    - apply 메서드 이용

    - 스프레드 문법 사용 시 간결, 가독성 더 좋음

  - Rest 파라미터와 혼동할 수 있으므로 주의

    - Rest 파라미터: 인수들의 목록을 배열로 전달 받음

    - 스프레드 문법: 배열과 같은 이터러블을 펼쳐서 개별적인 값들의 목록을 만듦

35.2 배열 리터럴 내부에서 사용하는 경우

  - concat

    - 별도의 메서드 필요 없이 배열 리터럴만으로 여러 배열 결합 가능

  - splice

    - 스프레드 문법 사용하면 더욱 간결하고 가독성 좋음

  - 배열 복사

    - slice 메서드 사용 안하고 얕은 복사하여 새로운 복사본 생성 가능

  - 이터러블을 배열로 변환

    - 이터러블이 아닌 유사 배열 객체는 스프레드 문법의 대상이 될 수 없음

      - Array.from 메서드 사용하여 배열로 변환 가능

35.3 객체 리터럴 내부에서 사용하는 경우

  - 스프레드 문법의 대상은 이터러블이지만, 스프레드 프로퍼티 제안은 일반 객체 대상으로도 허용함

  - 프로퍼티 중복 시 뒤에 위치한 프로퍼티가 우선권 가짐

  - Object.assign 메서드 사용 안해도 되므로 더 간편함

반응형

댓글