34 반복 가능

반복 가능한 로그
Symbol.iterator를 속성 키로 사용하는 메서드가 직접 구현되거나 상속되어 호출되면 반복자가 반환됩니다. 이를 반복 가능한 프로토콜이라고 합니다.
Iterables is for… of 문을 통해 순회할 수 있으며 확산 구문 및 구조 분해 할당의 대상으로 사용할 수 있습니다.
반복자 로그
Symbol.iterator를 호출하면 반복자 프로토콜을 준수하는 반복자를 반환합니다.
iterator.next를 호출하면 Iterable을 반복하고 value 및 done 속성을 가진 Iterator 결과 객체를 반환합니다. 이를 반복자 프로토콜이라고 하며, 이와 일치하는 객체를 반복자라고 합니다.
Iterator는 iterable의 요소를 반복하는 포인터 역할을 합니다.
...
(Symbol.iterator)(){
return {
next(){
return {value:any, done : boolean}
}
}
}
아래 반환은 반복자이며 전체 메서드는 반복 가능합니다.
반복 가능
iterable 여부를 확인하는 함수
const isIterable=v=>v!==null&&typeof v(Symbol.iterable())==='function'
Symbol.iterable이 있으면 사용, 전파 또는 구조 분해를 위해 할당할 수 있습니다.
반복자
next 메서드를 호출하면 다음 iterable을 반복한 결과를 나타내는 iterator 결과 객체가 반환됩니다.
내장 반복 가능
Array, String, Map, Set, TypedArray, Argument 및 DOM 컬렉션은 반복 가능합니다.
의사배열 객체
길이와 속성 키를 인덱스로 사용하는 객체
반복이 아니므로 for of 문을 사용할 수 없습니다.