<그냥하자> JavaScript (28) 이터러블 & 제너레이터

.·2024년 7월 31일

출처 : 인프런 얄팍한 코딩사전

I. 이터러블 프로토콜 iterable protocol

반복, 순회 기능을 사용하는 주체간의 통일된 규격
공통 기능들: for ... of, 스프레드 문법, 배열 디스트럭쳐링

이터러블 iterable - 이터러블 프로토콜을 준수하는 객체

배열, 문자열, Set, Map, arguments 등...

키 Symbol.iterator ( well-known 심볼 ) 의 값으로 이터레이터를 반환하는 메서드를 가짐

II. 이터레이터 iterator

next 메서드를 통해 이터러블을 순회하며 값을 반환

이터레이터 프로토콜 iterator protocol
next 메서드의 반환 객체 내 요소

value - 해당 차례에 반환할 값
done - 순회 종료 여부 ( 마지막 값 반환 다음 차례부터 )


제너레이터 generator

함수 내 코드들을 모두 실행하지 않고 외부 호출자에게 제어권을 양도 - "계속할까요?"

이터러블과 이터레이터를 보다 간결하게 구현 가능

I. 기본 사용법

  1. 제너레이터 함수/메서드 선언

function 다음 또는 메서드명 앞에 * - 띄어쓰기 위치 무관

  1. 제너레이터 객체

제너레이터 함수의 결과값으로 반환

이터레이터이자 이터러블

next 메서드를 실행하면 다음 yield까지 실행 후 중지
yield의 값을 value로 반환
끝까지 실행 후 done: true


모르겠다 모르겠어 의심하게 된다..

profile
해야 되는 일이 하고 싶은 일로

0개의 댓글