반복가능한 객체를 반복하고 개별 속성 값을 호출한다.
배열의 반복
열거 가능한 속성과 객체에서 문자열로 키가 지정된 모른 열거 가능한 속성을 반복
객체의 반복
객체의 모든 프로퍼티를 순회하며 열거
for (variable of iterable) {
statement
}
for (const variable in object) {
statement
}
let iterable = [10, 20, 30];
for (let value of iterable) {
console.log(value); //10, 20, 30
}
let iterable = [10, 20, 30];
for (let value in iterable) {
console.log(value); //0, 1, 2
}
반복되는 순서는 구현에 따라 다르기 때문에, 배열의 반복이 일관된 순서로 요소를 방문하지 못할 수도 있기 때문에 for 사용 권장.
let iterable = "boo";
for (let value of iterable) {
console.log(value); //"b", "o", "o"
}
키-값 쌍이 선호되는 데이터의 경우(속성이 "key"의 역할을 함) 특정 값을 가진 키가 있는지 확인하려는 경우에 for...in을 사용
var obj = {a: 1, b: 2, c: 3};
for (const prop in obj) {
console.log(`obj.${prop} = ${obj[prop]}`);
}
// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/for...of
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/for...in
https://velog.io/@onea/JS-for-...of%EC%99%80-for-...in%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90
https://developerntraveler.tistory.com/122
https://pks2974.medium.com/javascript%EC%99%80-iterator-cdee90b11c0f