Web Dev/1. JS 문법 관련

[함수형 프로그래밍] 섹션 2. ES6에서의 순회와 이터러블: 이터레이터 프로토콜

hYhY1234 2021. 1. 21. 12:41
728x90

 

기존과 달라진 ES6에서의 리스트 순회

  • for i++
  • for of

Array, Set, Map을 통해 알아보는 이터러블/이터레이터 프로토콜

  • 이터러블: 이터레이터를 리턴하는 [Symbol.iterator]() 를 가진 값
  • 이터레이터: {value, done} 객체를 리턴하는 next()를 가진 값
  • 이터러블/이터레이터 프로토콜: 이터러블을 for...of, 전개 연산자 등과 함께 동작하도록한 규약
  • 이터레이터 객체의 Symbol.iterator 값은 자기자신이다
  • Array Set Map은 JavaScript의 내장 이터러블이다.

사용자 정의 이터러블을 통해 알아보기

  • iterable 객체는 Symbol.iterator를 가지고 있어야하고, 이안에는 next 메소드가 구현이 되어 있어야 한다
  • 잘구현된 이터러블의 경우(well-formed iterable), 이터레이터의 이터레이터로도 순회할 수 있어야한다.
  • 잘구현된 이터러블의 경우, 일부는 먼저 조회한후 나머지만 순회할 수도 있어야한다.
  • 많은 순회가 가능한 라이브러리 등등은 이 형태를 따르고 있다.

전개 연산자

  • Iterable 속성을 이용한 연산