Chrome DevToolsで変数を検査してデバッグを高速化する方法

Chrome DevToolsは単なるブラウザの開発者ツールではなく、JavaScriptのバグを素早く発見・修正するための必須アイテムです。この記事では、初心者が最初に習得すべき「Elements検査」「Console操作」「デバッガー設定」の3つの実践的なテクニックを紹介します。これらを身につけると、デバッグに費やす時間が大幅に短縮されます。

Chrome DevToolsを開く基本操作

まず最初に、Chrome DevToolsを開く方法を確認しましょう。複数の方法がありますが、以下がもっともシンプルです。

  • Windows/Linux: F12キーまたはCtrl + Shift + I
  • Mac: Cmd + Option + I
  • 右クリックメニュー: 検査対象の要素を右クリックして「検査」を選択

DevToolsが起動すると、画面下部または右側にパネルが表示されます。このパネルには複数のタブがあり、それぞれ異なる役割を果たします。

要素の構造を確認する「Elements」タブ

DOMツリーでHTMLを視覚化する

Elementsタブは、WebページのDOM(ドキュメント・オブジェクト・モデル)の構造を階層的に表示します。CSSが反映されていない、レイアウトがずれているなどの問題を調査する際に最初に使用するタブです。

試してみましょう。Chrome DevToolsを開いて、Elementsタブをクリックしてください。画面左上の矢印アイコン(要素選択ツール)をクリックすると、Webページ上の任意の要素をクリックして、そのHTMLコードをDevTools内で確認できます。

CSSスタイルをリアルタイムで編集する

Elementsタブの右側には、選択した要素に適用されているCSSルールが表示されます。ここで直接スタイルを編集すると、ページに即座に反映されます。これは「このボタンの色を変更したらどう見えるか」といった試行錯誤に非常に有効です。

例えば、ボタンの背景色を変更したい場合、以下のように操作します。

  1. Elementsタブでボタン要素を選択
  2. 右側のスタイルパネルでbackground-colorプロパティを探す
  3. 色の値をクリックしてカラーピッカーで新しい色を選択
  4. 変更内容がページに即座に反映される

重要: DevTools内での編集は一時的なものであり、ページをリロードすると元に戻ります。気に入った変更があれば、必ずソースコード内のCSSファイルに反映させてください。

JavaScriptを実行・確認する「Console」タブ

JavaScriptコマンドを対話的に実行する

Consoleタブは、JavaScriptコードをリアルタイムで実行できるインタラクティブなコマンドラインです。変数の値を確認したり、関数をテストしたり、エラーメッセージを確認したりするのに使用します。

試してみましょう。Consoleタブを開いて、以下のコマンドを入力してください。

// 変数を定義して値を確認
let userName = "田中太郎";
console.log(userName);
// 出力: 田中太郎

// 計算を実行
5 + 3 * 2;
// 出力: 11

// ページ上のDOM要素を取得
document.querySelector('button');
// 該当するボタン要素を返す

Enterキーを押すと、入力したコードが実行され、その結果が表示されます。これにより、JavaScriptコードの動作を素早く検証できます。

console.log()でデバッグ情報を出力する

JavaScriptコード内にconsole.log()ステートメントを挿入することで、プログラムの実行状況を追跡できます。これは初心者にとって最も基本的で効果的なデバッグ手法です。

// JavaScriptコード内に記述
function calculateTotal(price, quantity) {
  const total = price * quantity;
  console.log('価格: ' + price);
  console.log('数量: ' + quantity);
  console.log('合計: ' + total);
  return total;
}

calculateTotal(1000, 5);
// Console出力:
// 価格: 1000
// 数量: 5
// 合計: 5000

Consoleタブには、このログ出力が時系列で表示されます。console.log()以外にも、console.warn()(警告)やconsole.error()(エラー)といったバリエーションがあり、重要度に応じて使い分けることができます。

プログラムの実行を一時停止する「Sources」タブ

ブレークポイントを設定してコード実行を制御する

Sourcesタブは、JavaScriptコードを行単位で実行を制御し、各時点での変数の値を確認する高度なデバッグツールです。特に複雑なバグを追跡する際に活躍します。

ブレークポイント(breakpoint)とは、「ここでプログラムの実行を一時停止する」という指示です。以下の手順で設定します。

  1. Sourcesタブを開く
  2. 左側のファイルリストから対象のJavaScriptファイルを選択
  3. 一時停止したい行番号をクリック(行番号の左側に青い丸が表示される)
  4. その行を実行するアクション(ボタンクリックなど)を実行する
  5. 実行がそこで一時停止し、その時点での変数値が確認できる

ステップ実行で1行ずつ追跡する

ブレークポイントで一時停止した後、Sourcesタブ上部のコントロールボタンを使用して、コードを1行ずつ実行(ステップ実行)できます。

  • Step Over (F10): 現在の行を実行して次の行に進む
  • Step Into (F11): 関数内部に入り込む
  • Step Out (Shift + F11): 現在の関数から抜け出す
// 例: このコードをSourcesで追跡する
function getUserInfo(userId) {
  let userData = { id: 1, name: "田中" };  // この行でブレークポイント設定
  console.log(userData);
  return userData;
}

getUserInfo(1);

ブレークポイントに到達すると、右側の「Scope」パネルに、その時点での変数値がすべて表示されます。

よくあるハマりポイント

ブレークポイントが機能しない場合

JavaScriptファイルがminify(圧縮)されている場合、ブレークポイントが正しく動作しないことがあります。これを解決するには、以下の方法があります。

  • Source Maps を有効化する: デベロッパーは通常、minify前のオリジナルコードのSource Mapファイル(.map)を用意しています。DevToolsの設定で「Enable JavaScript source maps」をオンにしてください。
  • 開発環境を使用する: 本番環境ではなく、開発サーバーを使用することで、未圧縮のコードでデバッグできます。

Consoleにエラーが表示されない

ページがエラーを出していても、Consoleタブに何も表示されない場合は、Consoleのフィルター設定を確認してください。Consoleパネル上部に「Errors」「Warnings」「Info」などのフィルターボタンがあり、ここで表示内容を制限している可能性があります。

Chrome DevToolsを使うべき場面と使うべきでない場面

使うべき場面

  • CSSスタイルの問題を素早く試行錯誤したい
  • JavaScriptの実行時エラーを調査したい
  • 変数の値が想定と異なる理由を追跡したい
  • APIレスポンスを確認したい(Network タブ)

使うべきでない場面

  • バックエンド API のバグ調査(サーバー側のログを確認すべき)
  • 大規模なコードベースの設計問題(IDE統合開発環境やコードレビュー手法を使用すべき)

Chrome DevToolsはフロントエンド専用のツールですので、用途に応じた適切なツール選択が重要です。

Network タブで通信内容を監視する

APIからのデータ取得やファイルの読み込みなど、ブラウザとサーバー間の通信を確認したい場合は、Networkタブが活躍します。

// APIを呼び出すコード例
fetch('https://api.example.com/users/1')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('エラー:', error));

このコードを実行すると、Networkタブに「users/1」というリクエストが表示されます。クリックすると、リクエストヘッダー、レスポンスボディ、ステータスコード(200, 404など)が確認できます。APIが正しく動作しているか、期待通りのデータが返されているかを検証するのに便利です。

よくある質問

まとめ

  • Elementsタブ: HTMLの構造を確認し、CSSを即座に試行錯誤できる
  • Consoleタブ: JavaScriptコマンドを対話的に実行し、console.log()でデバッグ情報を出力できる
  • Sourcesタブ: ブレークポイントとステップ実行でコードを1行ずつ追跡できる
  • Networkタブ: API通信やファイル読み込みの状態を確認できる
  • ハマりポイント: minify されたコードはSource Mapの有効化で対応できる
  • 用途の使い分け: フロントエンドの問題調査に特化しており、バックエンド問題にはサーバーログを確認すべき

これらのタブを使いこなすことで、ブラウ

K
AWS・Python・生成AIを専門とするソフトウェアエンジニア。AI・クラウド・開発ワークフローの実践ガイドを執筆しています。詳しく見る →