Daehyunii's Dev-blog

<모던자바스크립트 34장 이터러블> TIL-45 본문

✏️ 2022. TIL/July

<모던자바스크립트 34장 이터러블> TIL-45

Daehyunii 2022. 7. 27. 23:14

  오늘은 이터러블에 대해서 공부했다. 이터러블은 말 그대로 '반복 가능한' 이라는 뜻을 가지고 있다. 반복이 가능하다는 말은 순회할 수 있다는 의미인데, 오늘 처음 알게된 사실은 ES6 이전에는 명확한 기준이 없었다 라는 것이다. 그렇다면 ES6 이전에는 각종 반복문과 메서드를 통해서 다양한 방법으로 순회했다는 것인데, 이는 매우 번잡하고 개발자마다 익숙하게 사용하는 코드가 달라 매우 혼란스러웠을 것 같다. 하지만 이터레이션 프로토콜을 통해 무질서한 개념들이 질서정연하게 바뀐 것 같다. 사실 오늘 배운 내용들에 대해서 100% 이해하지 못했다. 이해한 부분은 이터레이션 프로토콜을 통해서 통일시켰고, 이터러블들은 for...of 문과 스프레드 문법 그리고 배열 디스트럭처링 할당의 대상이 된다는 것이다. 또한 이터러블은 Symbol.itertator 메서드를 직접 구현하거나 프로토타입 체인을 통해 상속받아 사용할 수 있는 객체를 말하면 해당 메서드를 호출하면 이터레이터가 반환된고, 이터레이터는 next 메서드를 가지고 있으며, next 메서드를 호출하면 이터레이터 리절트 객체를 반환하고 이를 통해 순회되고 있는 정보를 알 수 있다는 것을 이해했다. 하지만 그 외에 직접 이터러블을 정의구현하는 방법 이터레이션 프로토콜의 필요성에 대한 자세한 설명은 책을 읽으면서도 아직까지 정확하게 이해하기엔 힘들었다. 그래서 이해한 부분까지만 블로그에 정리를 했다. 하지만 오늘 배운 내용 중 한가지 확실한 기억해야 할 것은, 이터러블 빌트인 객체는 String, Array, DOM컬렉션, arguments, TypedArray, Map, Set이 있고 이터러블은 for...of문을 통해 순회가능하며 스프레드 문법과 배열 디스트럭처링 할당의 대상이 된다는 사실이다. 이 사실만 지금 명확하게 알고 넘어간다면 우선 코드를 작성하는데 큰 어려움이 생길 것 같지는 않다. 그리고 모던 자바스크립트 책을 2회독 하면서 다시 한 번 자세하게 이터러블 관련 내용을 공부해야 겠다.

 

2022.07.27 - [언어 공부 및 정리/자바스크립트[모던자바스크립트]] - 34장 이터러블

 

34장 이터러블

34.1 이터레이션 프로토콜 ES6에서 도입된 이터레이션 프로토콜은 순회 가능한 데이터 컬렉션 즉 자료구조를 만들기 위해 ECMAscript 사양에 정의하여 미리 약속한 규칙이다. ES6 이전의 순회 가능한

pinetree93.tistory.com