35.0 스프레드 문법
- ES6, 스프레드 문법: 하나로 뭉쳐 있는 여러 값들의 집합을 펼쳐서 개별적인 값들의 목록으로 만듦
- for ... of문으로 순회 가능한 이터러블에 한정해서 사용 가능
- 스프레드 문법의 결과는 값이 아님 (값 생성하는 연산자 아님)
- 변수에 할당 불가
- 스프레드 문법 사용 가능한 곳 (쉼표로 구분한 값의 목록을 사용하는 문맥에서만 가능)
- 함수 호출문의 인수 목록
- 배열 리터럴의 요소 목록
- 객체 리터럴의 프로퍼티 목록
35.1 함수 호출문의 인수 목록에서 사용하는 경우
- Math.max(가변인자)
- apply 메서드 이용
- 스프레드 문법 사용 시 간결, 가독성 더 좋음
- Rest 파라미터와 혼동할 수 있으므로 주의
- Rest 파라미터: 인수들의 목록을 배열로 전달 받음
- 스프레드 문법: 배열과 같은 이터러블을 펼쳐서 개별적인 값들의 목록을 만듦
35.2 배열 리터럴 내부에서 사용하는 경우
- concat
- 별도의 메서드 필요 없이 배열 리터럴만으로 여러 배열 결합 가능
- splice
- 스프레드 문법 사용하면 더욱 간결하고 가독성 좋음
- 배열 복사
- slice 메서드 사용 안하고 얕은 복사하여 새로운 복사본 생성 가능
- 이터러블을 배열로 변환
- 이터러블이 아닌 유사 배열 객체는 스프레드 문법의 대상이 될 수 없음
- Array.from 메서드 사용하여 배열로 변환 가능
35.3 객체 리터럴 내부에서 사용하는 경우
- 스프레드 문법의 대상은 이터러블이지만, 스프레드 프로퍼티 제안은 일반 객체 대상으로도 허용함
- 프로퍼티 중복 시 뒤에 위치한 프로퍼티가 우선권 가짐
- Object.assign 메서드 사용 안해도 되므로 더 간편함
'Books > 모던 JS Deep Dive ✔️' 카테고리의 다른 글
[모던 JS Deep Dive] 37장 - Set과 Map (0) | 2022.01.20 |
---|---|
[모던 JS Deep Dive] 36장 - 디스트럭처링 할당 (0) | 2022.01.20 |
[모던 JS Deep Dive] 34장 - 이터러블 (0) | 2022.01.19 |
[모던 JS Deep Dive] 33장 - 7번째 데이터 타입 Symbol (0) | 2022.01.19 |
[모던 JS Deep Dive] 32장 - String (0) | 2022.01.19 |
댓글