ECMAScript6 - Iteration

이터러블 프로토콜은 오브젝트의 반복 처리 규약을 정의한다.
내장 오브젝트로 String, Array, Map, Set, TypedArray, Argument 오브젝트는 디폴트로 이터러블 프로토콜을 갖고 있다.
또한 DOM의 NodeList도 갖고 있다.

이러한 오브젝트는 자바스크립트 엔진이 렌더링될 때 이터러블 프로토콜이 설정된다.
사전처리 없이 반복 처리가 가능하다.
이터러블 프로토콜이 설정된 오브젝트를 이터러블 오브젝트라고 한다.

이터러블 오브젝트는 Symbol.iterator가 있어야 한다.
이것이 이터러블 프로토콜이다.

이터러블 오브젝트가 아닌 오브젝트에 Symbol.iterator를 개발자 코드로 추가하면 이터러블 오브젝트가 된다.




Array 오브젝트가 할당된 arrayObj에서 Symbol.iterator의 존재 여부를 체크하는 코드이다.
오브젝트에 프로퍼티 존재 여부를 체크할 때 arrayObj.propertyKey 또는 arrayObj[propertyKey] 형태로 작성하는데,
Symbol은 arrayObj.Symbol.iterator 형태로 작성할 수 없고
arrayObj[Symbol.iterator]와 같이 대괄호 [] 안에 Symbol.iterator를 작성해야 한다.


Object 오브젝트는 이터러블 오브젝트가 아니다.
Symbol.iterator가 없다.



이터레이터 프로토콜은 오브젝트 값을 순차적으로 처리할 수 있는 방법을 제공하는데,
이것이 next() 메서드이다.

댓글

이 블로그의 인기 게시물

About JVM Warm up

About idempotent

About Kafka Basic

About ZGC

sneak peek jitpack

Spring Boot Actuator readiness, liveness probes on k8s

About Websocket minimize data size and data transfer cost on cloud

About G1 GC

대학생 코딩 과제 대행 java, python, oracle 네 번째