이터러블

베니·2022년 3월 1일
0

JS

목록 보기
16/24
post-thumbnail

빌트인 이터러블

자바스크립트는 이터레이션 프로토콜을 준수한 객체인 빌트인 이터러블을 제공한다. 다음의 표준 빌트인 객체들은 빌트인 이터러블이다.

빌트인 이터러블Symbol.iterator 메서드
ArrayArray.prototype[Symbol.iterator]
StringString.prototype[Symbol.iterator]
MapMap.prototype[Symbol.iterator]
SetSet.prototype[Symbol.iterator]
TypedArrayTypedArray.prototype[Symbol.iterator]
argumentsarguments.prototype[Symbol.iterator]
DOM 컬렉션NodeList.prototype[Symbol.iterator]
HTMLCollection.prototype[Symbol.iterator]

이터러블과 유사 배열 객체

유사 배열 객체는 마치 배열처럼 인덱스로 프로퍼티 값에 접근할 수 있고 length 프로퍼티를 갖는 객체를 말한다.

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

// 유사 배열 객체는 이터러블이 아니기 때문에 for...of 문으로 순회할 수 없다.
for (const item of arrayLike) {
  console.log(item); // 1 2 3
}
// TypeError: arrayLike is not iterable

단, arguments, NodeList, HTMLCollection은 유사 배열 객체이면서 이터러블이다.

참고

모던 자바스크립트 Deep Dive

profile
안녕하세요~

0개의 댓글