Loading
BLOG 開発者ブログ

2025年6月24日

【JavaScript】ループの使い分け

アプリケーション開発でループは避けては通れないと言ってよい程登場頻度の多い機能です。
ひとまとめにループと言ってもJavaScriptでは様々な構文があり、それぞれに特徴がありますので使い分けを整理したいと思います。

目次

  1. はじめに
  2. 特徴の整理
  3. おわりに

はじめに

こんにちは。
クラウドソリューショングループのakahane.tです。

JavaScriptには様々なループの構文があります。
代表的なものがfor文で「ループ = for文」となる方もいるくらい汎用性が高いため使い分けしなくてもプログラムが作れてしまいますが、他の構文にもそれぞれ特徴があり適切に使用することで可読性・保守性が向上するので特徴と使いどころを整理したいと思います。

今回は下記の基礎的なものに絞って整理します。

  • while
  • do while
  • for
  • for of
  • for in
  • forEach

特徴の整理

これらの構文の特徴と使いどころを整理すると下記のようになります。

構文 特徴 使いどころ
while
while (condition) {
  statement
}
  • 条件(condition)が最初に評価される
  • ループの早期終了(break)やスキップ(continue)が可能
  • 反復回数が不明なとき
do while
do {
  statement
} while (condition);
  • 最低1回はstatementが実行される
  • ループの早期終了(break)やスキップ(continue)が可能
  • 反復回数が不明なとき
  • 最低1回はstatementを実行したいとき
for
for (initialization; condition; afterthought) {
  statement
}
  • 反復処理の制御変数の定義と初期化、反復判定、制御変数の更新を一行で記述可能
  • ループの早期終了(break)やスキップ(continue)が可能
  • 反復回数の上限が決まっているとき
  • 反復処理中のみ使用する変数があるとき
for of
for (variable of iterable) {
  statement
}
  • 配列や文字列などのイテラブルオブジェクトに使用可能
  • ループの早期終了(break)やスキップ(continue)が可能
  • イテラブルオブジェクトの要素に対して反復処理を実施するとき
for in
for (variable in object) {
    statement
}
  • オブジェクトの列挙可能なプロパティに使用可能
  • ループの早期終了(break)やスキップ(continue)が可能
  • オブジェクトのプロパティに対して反復処理するとき
forEach
forEach(callbackFn)
forEach(callbackFn, thisArg)
  • 例外以外でループを中断できない
  • 配列の全要素に対して1回ずつ実行するとき

おわりに

今回はJavaScriptで用意されているループの構文の特徴を整理してみましたが、改めて整理してみるとそれぞれ特徴が異なっていて使用する場面次第で適不適が分かれてきますね。
また、配列に対しては mapreducefilterなど紹介しきれなかった関数がたくさんあり、場面に合わせて使い分けることでforEach以上に明確・シンプルに書くこともできます。
容易に何がしたいかが理解できるコードは可読性・保守性も高くなるので、それぞれの特徴を把握してその場面に適した構文・関数を使い分けていきましょう。

akahane.tのブログ