이터러블(Iterable)과 이터레이터(Iterator) 프로토콜은 자바스크립트에서 데이터를 순회(iterate)하는 방법을 정의하는 프로토콜임.
이터러블(Iterable):
이터러블은 [Symbol.iterator] 메서드를 구현하거나 프로토콜을 따르는 객체임.
이 메서드는 이터레이터를 반환하며, 이터레이터는 순회 가능한(iterable) 객체임.
이터러블은 주로 배열, 문자열, 맵, 셋과 같이 순회 가능한 데이터 구조를 말함.
이터레이터(Iterator):
이터레이터는 { value, done } 형태의 객체를 반환하는 next() 메서드를 가진 객체임.
value는 현재 이터레이션의 값을 나타내며, done은 이터레이션의 종료 여부를 나타냄.
이터레이터는 순회 가능한 객체를 한 번에 하나씩 순회하고, 순회 상태를 관리함.
이터러블과 이터레이터 프로토콜을 통해 자바스크립트에서는 순회 가능한 데이터 구조를 일관된 방식으로 순회할 수 있음.
이것을 통해 다양한 데이터 타입에서 순회 동작을 일반화할 수 있음.
이를 통해 배열, 문자열, 맵, 셋 등의 데이터 구조를 동일한 방식으로 다룰 수 있어서 코드를 더 간결하고 유연하게 작성할 수 있음.