본문 바로가기

Javascript

전개 연산자 ( Spread Operator ) - JS ES6+ 함수형 프로그래밍 - 7

본 시리즈는 인프런 강의 함수형 프로그래밍과 JavaScript ES6+ ( 지식 공유자 : 유인동 님 ) 의 강의를 수강하면서 내용을 제 방식대로 포스팅하는 글입니다.

 

함수형 프로그래밍과 JavaScript ES6+ - 인프런 | 강의

ES6+와 함수형 프로그래밍을 배울 수 있는 강의입니다. 이 강좌에서는 ES6+의 이터러블/이터레이터/제너레이터 프로토콜을 상세히 다루고 응용합니다. 이터러블을 기반으로한 함수형 프로그래밍,

www.inflearn.com

 

전개 연산자도 마찬가지로 이터러블 / 이터레이터 프로토콜을 따른다.

let a = [1, 2];

console.log(...a); // 1 2
console.log([...a, ...[3, 4]]); // [1, 2, 3, 4]

a[Symbol.iterator] = null;

console.log(...a); // not iterable

Array, Set, Map 모두 전개 연산자를 사용할수 있다.

let a = [1, 2];
const arr = [1, 2, 3];
const set = new Set([1, 2, 3]);
const map = new Map([
  ["a", 1],
  ["b", 2],
  ["c", 3],
]);

console.log(...a); // 1 2
console.log([...a, ...[3, 4]]); // [1, 2, 3, 4]
console.log([...a, ...arr, ...set, ...map.keys()]); // [1, 2, 1, 2, 3, 1, 2, 3, 'a', 'b', 'c']

이렇기 때문에 es6 이터러블 / 이터레이터 프로토콜은 매우 중요하다.

이 프로토콜을 정확히 익히고 이터러블에 대한 추상을 정확히 다루면 JS 보다 이 값들을 잘 사용한 함수들을 만들고 값들을 잘 다룰수 있다.