본 시리즈는 인프런 강의 함수형 프로그래밍과 JavaScript ES6+ ( 지식 공유자 : 유인동 님 ) 의 강의를 수강하면서 내용을 제 방식대로 포스팅하는 글입니다.
전개 연산자도 마찬가지로 이터러블 / 이터레이터 프로토콜을 따른다.
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 보다 이 값들을 잘 사용한 함수들을 만들고 값들을 잘 다룰수 있다.
'Javascript' 카테고리의 다른 글
JS - 제너레이터를 이용한 홀수 반환 함수 - JS ES6+ 함수형 프로그래밍 - 9 (0) | 2022.09.09 |
---|---|
제너레이터와 이터레이터 - JS ES6+ 함수형 프로그래밍 - 8 (0) | 2022.09.09 |
사용자 정의 이터러블, 이터러블 / 이터레이터 프로토콜 정의 - JS ES6+ 함수형 프로그래밍 - 6 (0) | 2022.09.09 |
Array, Set, Map 을 통해 알아보는 이터러블 / 이터레이터 - JS ES6+ 함수형 프로그래밍 - 5 (0) | 2022.09.08 |
기존과 달라진 ES6 에서의 리스트 순회 - JS ES6+ 함수형 프로그래밍 - 4 (0) | 2022.09.08 |