for (variable of iterable) {
    // 반복할 코드
}
const iterable = [1, 2, 3, 4, 5]; // 배열을 예시로 사용

for (const item of iterable) {
    console.log(item);
}
console에서 출력된 모습
const iterable = "Hello"; // 문자열을 예시로 사용

for (const char of iterable) {
    console.log(char);
}
console에서 출력된 모습
<div></div>
<div></div>
<div></div>
<div></div>
const elements = document.querySelectorAll("div"); // NodeList

for (const element of elements) {
    console.log(element);
}
console에서 출력된 모습
const myArray = [10, 20, 30, 40, 50];

// "for...of" 문으로 배열 순회 (인덱스 정보 누락)
for (const item of myArray) {
    console.log(item); // 배열의 요소 출력
}

// "for...in" 문으로 배열 순회 (인덱스 정보 포함)
for (const index in myArray) {
    console.log(index, myArray[index]); // 인덱스와 배열의 요소 출력
}

// "forEach" 메서드로 배열 순회 (인덱스 정보 누락)
myArray.forEach((item) => {
    console.log(item); // 배열의 요소 출력
});
const myObject = {a: 1, b: 2, c: 3};

for (const prop of myObject) { // 이 부분에서 에러 발생
    console.log(prop);
}
// TypeError: myObject is not iterable
for (const prop in myObject) {
    console.log(myObject[prop]);
}

for (const [key, value] of Object.entries(myObject)) {
    console.log(key, value);
}

caniuse.com에서 더 자세한 정보를 확인해 보세요.