ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 34_Iterable
    모던 자바스크립트 딥 다이브 독학 2023. 12. 3. 15:29
    • 이터러블 프로토콜을 준수한 객체를 이터러블이라 한다. 이터러블은 for…of 문으로 순회할 수 있으며 스프레드 문법과 배열 디스트럭처링 할당의 대상으로 사용할 수 있다. (배열, 문자열, Map, Set 등)

    • 이터레이터 프로토콜을 준수한 객체를 이터레이터라 한다. 이터레이터는 이터러블의 요소를 탐색하기 위한 포인터 역할을 한다. 이터러블의 Symbol.iterator 메서드가 반환한 이터레이터는 next 메서드를 갖는다.

        const array = [1, 2, 3];
        const iterator = array[Symbol.iterator](); // Symbol.iterator 메서드는 이터레이트를 반환
        console.log('next' in iterator); // true
    • 일반 객체는 for…of 문으로 순회할 수 없으며 스프레드 문법과 배열 디스트럭처링 할당의 대상으로 사용할 수 없다.

    빌트인 이터러블

    Array, String, Map, Set, TypedArray, arguments, DOM 컬렉션

    for…of문

    for (변수 선언문 of 이터러블) { ... }

    이터러블과 유사 배열 객체

    • 유사 배열 객체는 이터러블이 아닌 일반 객체이므로 Symbol.iterator 메서드가 없기 때문에 for…of 문으로 순회할 수 없다.

        const arrayLike = {        // 유사 배열 객체
            0: 1,
            1: 2,
            2: 3,
            length: 3
        };
    • 단, arguments, NodeList, HTMLCollection은 유사 배열 객체이면서 이터러블이다.

    • Array.from 메서드를 사용하여 이터러블이 아닌 유사 배열 객체나 이터러블을 배열로 변환한다.

    '모던 자바스크립트 딥 다이브 독학' 카테고리의 다른 글

    36_Destructuring  (1) 2023.12.08
    35_Spread Syntax  (0) 2023.12.07
    33_Symbol  (0) 2023.11.30
    32_String  (0) 2023.11.23
    31_RegExp  (0) 2023.11.22
Designed by Tistory.