ブレークポイントとは?

ブレークポイントとは、JavaScriptコードの特定の行でプログラムの実行を一時停止し、その時点の状態を確認するためのデバッグ機能です。
ブレークポイントを設定すると、プログラムは指定した行で停止し、変数の値や関数の呼び出し状況、現在の処理の流れなどを確認できます。console.log()だけでは分かりにくい問題も、ブレークポイントを使うことで原因を見つけやすくなります。
現在では、Google ChromeやMicrosoft Edgeなどのブラウザに搭載されているDevTools(開発者ツール)を使ってデバッグする方法が一般的です。
ブレークポイントの基本的な設定方法
主要なブラウザでは、開発者ツールから簡単にブレークポイントを設定できます。
| ブラウザ | 設定方法 |
|---|---|
| Google Chrome | F12キーでDevToolsを開き、「Sources」タブで行番号をクリックする。 |
| Microsoft Edge | F12キーでDevToolsを開き、「Sources」タブで行番号をクリックする。 |
| Mozilla Firefox | F12キーでDeveloper Toolsを開き、「デバッガ」タブで行番号をクリックする。 |
| Safari | 開発メニューからWebインスペクタを開き、対象ファイルの行番号をクリックする。 |
Chrome DevToolsでブレークポイントを設定する
Google Chromeでは、以下の手順でブレークポイントを設定できます。
設定手順
- ChromeでデバッグしたいWebページを開く。
- F12キーを押してDevToolsを開く。
- 「Sources」タブを開く。
- 対象のJavaScriptファイルを選択する。
- 停止させたい行の行番号をクリックする。
- ページを操作すると、その行で実行が停止する。
停止すると、その時点の変数や実行中の関数を確認できます。
Firefox Developer Toolsで設定する
Firefoxでも同様の方法でブレークポイントを設定できます。
設定手順
- FirefoxでF12キーを押してDeveloper Toolsを開く。
- 「デバッガ」タブを開く。
- JavaScriptファイルを選択する。
- 停止したい行番号をクリックする。
- ページを操作すると、その位置で実行が停止する。
Chromeと基本的な使い方はほぼ同じです。
ブレークポイントを設定してみる
例えば、次のようなコードがあるとします。
function add(a, b) {
const result = a + b;
return result;
}
const total = add(10, 20);
console.log(total);
const result = a + b;の行にブレークポイントを設定すると、その行でプログラムが停止します。
停止中は、次のような情報を確認できます。
aの値bの値resultがまだ作成されていないこと- どの関数から呼び出されたか
ブレークポイントで確認できる情報
ブレークポイントで停止すると、さまざまな情報を確認できます。
- 変数の現在の値
- ローカル変数・グローバル変数
- 関数の呼び出し履歴(コールスタック)
- オブジェクトの内容
- 現在実行されているコード
- 次に実行される処理
これらを確認することで、想定と異なる値になっている箇所や、処理の流れを把握できます。
ステップ実行を活用する
ブレークポイントで停止した後は、1行ずつコードを実行できます。
| 操作 | 内容 |
|---|---|
| Step Over | 現在の行を実行し、次の行へ進む。 |
| Step Into | 関数の中へ入って処理を確認する。 |
| Step Out | 現在の関数を最後まで実行して呼び出し元へ戻る。 |
| Resume | 次のブレークポイントまで通常実行する。 |
これらを使うと、処理の流れを少しずつ追跡できます。
条件付きブレークポイント
通常のブレークポイントでは毎回停止しますが、条件付きブレークポイントを使うと、指定した条件を満たした場合だけ停止できます。
設定方法
- 行番号を右クリックする。
- 「Add Conditional Breakpoint(条件付きブレークポイント)」を選択する。
- 条件式を入力する。
例えば、ループの100回目だけ停止したい場合は、次のような条件を設定できます。
i === 100
これにより、100回目だけ停止するため、大量のループでも効率よくデバッグできます。
debugger文を使う方法
JavaScriptには、コード内からブレークポイントを設定できるdebugger文があります。
function calculate(value) {
debugger;
return value * 2;
}
calculate(10);
DevToolsが開かれている状態でこのコードを実行すると、debugger;の行で自動的に停止します。
一時的なデバッグには便利ですが、本番公開前には削除するようにしましょう。
ブレークポイントの活用場面
ブレークポイントは、次のような場面で特に役立ちます。
- 変数の値が想定通りに変化しているか確認したい。
- ループの途中で問題が起きる原因を調べたい。
- 特定の関数が呼び出されたときの動作を確認したい。
- 非同期処理の流れを確認したい。
- エラーが発生する直前の状態を確認したい。
console.log()との使い分け
| 方法 | 向いている場面 |
|---|---|
console.log() |
簡単に値を確認したい場合。 |
| ブレークポイント | 処理を停止して詳しく状態を調べたい場合。 |
debugger |
コード内から一時的に停止したい場合。 |
簡単な確認ならconsole.log()でも十分ですが、複雑な処理ではブレークポイントの方が効率的です。
まとめ
- ブレークポイントは、指定した行でプログラムを一時停止するデバッグ機能です。
- 停止中は、変数の値やオブジェクト、コールスタックなどを確認できます。
- ChromeやEdgeでは、DevToolsの「Sources」タブから簡単に設定できます。
- Step OverやStep Intoを使うと、1行ずつ処理を追跡できます。
- 条件付きブレークポイントを使うと、特定の条件だけで停止できます。
debugger文を使うと、コードから停止位置を指定することもできます。console.log()と使い分けることで、効率よくデバッグできます。