반응형
Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

동글이의 STORY

Iteration 본문

Javascript/ES6

Iteration

dongling 2024. 6. 12. 21:44
728x90
반응형

 핵심요약

  • 이터레이션 이란?
    • 어떠한 데이터 컬렉션(자료구조)을 순회하거나 반복하는 것을 의미
    • 반복처리를 위한 프로토콜 존재
    • for 루프, map(), filter() 등 이터레이션을 위한 다양한 내장 메서드들이 존재

⚡이터레이션

  • 반복 처리를 나타내며 이를 위한 프로토콜(Protocol)을 갖고 있다.
  • 프로토콜 : 이터레이션을 위한 규약이 있으며 이를 지켜야 반복 처리를 할 수 있다.
    • ex) 배열을 반복하여 처리하기 위해서는 배열이 반복할 수 있는 오브젝트이어야 하며, 오브젝트에 반복 처리를 할 수 있는 메서드가 있어야 함
  • 구성 : 이터러블(Iterable) 프로토콜과 이터레이터(Iterator) 프로토콜

🔹 이터러블 프로토콜

  • 오브젝트의 반복 처리 규약 정의
  • String, Array, Map, Set, TypeArray, Argument 오브젝트는 디폴트로 이터러블 프로토콜을 갖고 있음
  • 자바스크립트 엔진이 랜더링될 때 이터러블 프로토콜 설정
    ⇒ 사전 처리를 하지 않아도 반복처리가 가능
  • 이터러블 오브젝트 Symbol.iterator가 있어야 함
    • Symbol.iterator 메서드를 소유하지 않으며 for ... of 문으로 순회가 불가능
  • 프로토콜이 규약이므로 이터러블이 아닌 오브젝트에 프로토콜을 지켜 개발자 코드를 추가하면 이터러블 오브젝트가 됨
const array = [1, 2, 3];

console.log(Symbol.interator in array); // true

for (const item of array.keys()) {
    console.log(item);
}

🔹 이터레이터 프로토콜

  • 오브젝트의 값을 차례대로 처리할 수 있는 방법을 제공
  • 이터레이터는 next 메서드를 소유하며 next 메서드를 호출하면 이터러블을 순회하며 value와 done 프로퍼티를 갖는 객체(iterator result)를 반환
const array = [1, 2, 3];

const iterator = array.values();

console.log(iterator.next().value); // 반환된 iterator로 수동 next 호출, 다음값 반환
console.log(iterator.next().value); // next의 value로 값에 접근 가능
console.log(iterator.next().value); // 3
console.log(iterator.next().value); // { value: undefined, done: true }
console.log(iterator.next().done); // true
728x90
반응형

'Javascript > ES6' 카테고리의 다른 글

오퍼레이션  (4) 2024.06.12
디스트럭처링  (1) 2024.06.12
Spread 연산자  (4) 2024.06.12
Arrow 함수  (2) 2024.06.12
스코프, let, const  (3) 2024.06.12