for...in
문은 Object
를 순환하는 for문이다.
const obj = { a: 1, b: 2, c: 3 }; for (let item in obj) { console.log(item) // a, b, c }
for...of
을 사용할 수 있는 객체를 iterable
이라고 부른다.
iterable
을 순회하면서 iterable
의 요소를 변수에 할당한다.
일반적인 Object
는 iterable
이 아니다.
위와 같은 코드를 for...of
를 사용해보면 다음과 같은 결과가 나온다
const obj = { a: 1, b: 2, c: 3 }; for (let item of obj) { console.log(item) // Uncaught TypeError: obj is not iterable }
일반적으로 사용하는 내장 iterable
은 문자열과 배열이 있으며, Symbol
을 통하여 직접 생성하는 방법도 있다.