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() 메서드이다.
내장 오브젝트로 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() 메서드이다.
댓글
댓글 쓰기