for は、JavaScript における一般的な反復処理を行うための制御文です。通常の数値反復だけでなく、for...infor...of を使ってオブジェクトや配列を反復処理する構文も含まれます。それぞれの用途や使用方法を以下で解説します。

構文

編集

一般的な for ループ

編集
for (初期化; 条件; 更新) {
  // 実行するコード
}

各部分の説明:

  • 初期化: カウンター変数を初期化します。
  • 条件: 条件が true の間、ループが実行されます。
  • 更新: 各反復の最後に実行される式です。

for...in ループ

編集
for (プロパティ in オブジェクト) {
  // 実行するコード
}
  • オブジェクトのすべての列挙可能なプロパティ名を反復します。

for...of ループ

編集
for (変数 of 反復可能オブジェクト) {
  // 実行するコード
}
  • 配列やその他の反復可能なオブジェクトの要素を反復します。

for await...of ループ

編集
for await (変数 of 非同期反復可能オブジェクト) {
  // 実行するコード
}
  • 非同期反復可能なオブジェクトの要素を反復します。

使用例

編集

一般的な for ループ

編集
for (let i = 0; i < 5; i++) {
  console.log(i); // 0, 1, 2, 3, 4 を出力
}

この例では、カウンター i を使って 0 から 4 までの数値を出力しています。

for...in ループ

編集
const obj = { a: 1, b: 2, c: 3 };

for (const key in obj) {
  console.log(key, obj[key]); // a 1, b 2, c 3 を順に出力
}

この例では、オブジェクト obj のすべてのキーと値を出力します。

for...of ループ

編集
const array = ['A', 'B', 'C'];

for (const value of array) {
  console.log(value); // 'A', 'B', 'C' を順に出力
}

この例では、配列の各要素を出力します。

for await...of ループ

編集
async function asyncExample() {
  const promises = [
    Promise.resolve('X'),
    Promise.resolve('Y'),
    Promise.resolve('Z'),
  ];

  for await (const value of promises) {
    console.log(value); // 'X', 'Y', 'Z' を順に出力
  }
}

asyncExample();

この例では、非同期の Promise を順に解決し、その値を出力します。

注意点

編集
  • for...in の注意点: for...in はプロトタイプチェーンのプロパティも列挙する可能性があるため、オブジェクトのキーを限定したい場合は Object.hasOwnProperty を使ってチェックすることを推奨します。
  • for...of の制約: for...of は反復可能オブジェクト(Symbol.iterator を実装しているオブジェクト)にのみ使用できます。

関連項目

編集

参考

編集