const iterable = [1, 2, 3, 4, 5]; // 配列を例として使用

for (const item of iterable) {
    console.log(item);
}
コンソールに出力された表示例
for (variable of iterable) {
    // 繰り返し処理するコード
}
const arr = ["apple", "banana", "cherry"];
for (const fruit of arr) {
    console.log(fruit);
}
// 出力: "apple" "banana" "cherry"
const str = "abc";
for (const char of str) {
    console.log(char);
}
// 出力: "a" "b" "c"
const map = new Map([["key1", "value1"], ["key2", "value2"]]);
for (const [key, value] of map) {
    console.log(key, value);
}
// 出力: "key1 value1" "key2 value2"
const set = new Set([1, 2, 3]);
for (const value of set) {
    console.log(value);
}
// 出力: 1 2 3
<ul>
    <li>うどん</li>
    <li>ラーメン</li>
    <li>おにぎり</li>
</ul>
const liElements = document.getElementsByTagName("li"); // liタグをすべて選択
console.log(liElements); // HTMLCollection(3) [li, li, li]

/* for...of文の適用 */
for (const liElement of liElements) {
    console.log(liElement.textContent);
}
// 出力: "うどん" "ラーメン" "おにぎり"
<ul>
    <li>うどん</li>
    <li>ラーメン</li>
    <li>おにぎり</li>
</ul>
const liElements = document.querySelectorAll("li"); // liセレクタをすべて選択
console.log(liElements); // NodeList(3) [li, li, li]

/* for...of文の適用 */
for (const liElement of liElements) {
    console.log(liElement.textContent);
}
// 出力: "うどん" "ラーメン" "おにぎり"
function showArgs() {
    for (const arg of arguments) {
        console.log(arg);
    }
}

showArgs(10, 20, 30);
// 出力: 10 20 30
/* breakの例:3以上の場合にループを終了 */
const numbers = [1, 2, 3, 4, 5];

for (const num of numbers) {
    if (num >= 3) break;
    console.log(num);
}
// 出力: 1 2

/* continueの例:3の場合はスキップ */
for (const num of numbers) {
    if (num === 3) continue;
    console.log(num);
}
// 出力: 1 2 4 5
const numbers = [10, 20, 30];

// 値だけを反復処理
for (const value of numbers) {
  console.log(value); // 10, 20, 30
}
const obj = {
    a: 1,
    b: 2
}

// エラー発生!
for (const value of obj) {
  console.log(value);
}
// TypeError: obj is not iterable
const obj = {
    a: 1,
    b: 2
}

// キーの反復処理
for (const key of Object.keys(obj)) {
  console.log(key); // a, b
}

// 値の反復処理
for (const value of Object.values(obj)) {
  console.log(value); // 1, 2
}

// キーと値の両方を反復処理
for (const [key, value] of Object.entries(obj)) {
  console.log(key, value); // a 1, b 2
}