191024_TIL(유사배열객체 와 반복가능한 객체)

유사 배열 객체와 반복 가능한 객체

반복 가능한 객체(iterable)의 특징

Symbol.iterator라는 특별한 형태의 메소드가 존재하며 for문 또는 for…of문 등으로 순회가 가능하다.

반복 가능한 객체의 종류

  • Array
  • Map
  • Set
  • String
  • TypedArray
  • arguments

유사 배열 객체(Array-like-Objects)의 조건

  1. 반드시 length 프로퍼티가 필요하다.
  2. index는 0부터 시작하여 1씩 증가해야 한다.

유사 배열은 전개 연산자나 for…of와 함께 사용할 수 없다.

1
2
3
4
// 유사 배열 객체 만들기
const arrayLike = { 0: 1, 1: 2, 2: 3, length: 3 };

for(let n of arrayLike) { console.log(n) }; // Uncaught TypeError: arrayLike is not iterable

대표적인 유사배열로는 arguments, NodeList 등이 있는데 최신 브라우저 환경에서 iterable이 되었다.

1
2
3
4
5
function foo (...args) {
for(let argument of arguments) { console.log(argument) };
}

foo(1,2,3,4,5); // 1,2,3,4,5

String

  • String은 유사배열 객체이면서 반복 가능한 객체이다.

유사 배열 객체

Iterator

참고 자료

MDN_for…of

Iterable

MDN Iteration protocols

Share