Safariの開発ツールを使ったJavaScriptデバッガの使い方




こんにちは。國府です。

はじめに

この記事では、Safariに標準搭載されている「開発ツール」を使って、JavaScriptのデバッグを効率的に行う方法をわかりやすく解説します。ChromeやFirefoxのDevToolsは有名ですが、MacユーザーならSafariでも十分に高度なデバッグが可能です。

目次

  1. 開発ツールを有効にする方法
  2. 開発ツールの基本構成
  3. Consoleを使った簡易デバッグ
  4. Sourcesタブでブレークポイントを設定
  5. 変数の確認方法(スコープ・ウォッチ式)
  6. ネットワーク通信の確認方法
  7. イベントリスナーのデバッグ
  8. デバッガの便利機能(条件付きブレークポイント/ログポイント)
  9. モバイルSafariのデバッグ方法(iPhone/iPad)
  10. まとめ

1. 開発ツールを有効にする方法

Safariの開発ツールは、初期設定では無効になっています。以下の手順で有効にしましょう。

  1. Safariを開く
  2. メニューから Safari > 設定 を選択
  3. 詳細 タブを開く
  4. 「メニューバーに“開発”メニューを表示」にチェック

これでSafariのメニューバーに「開発」という項目が表示され、開発ツールが使えるようになります。

2. 開発ツールの基本構成

Webページ上で右クリック → “要素の詳細を表示” または ⌥⌘I で開発ツールを起動できます。主なパネルは以下の通りです:

パネル名 役割
Elements HTML/CSSの確認と編集
Console JavaScriptのログやエラー表示、コード実行
Sources JavaScriptファイルのデバッグ
Network 通信状況の確認
Storage Cookie/LocalStorageの確認
Timelines パフォーマンス解析

次章ではJavaScriptデバッグの中心となるConsoleとSourcesパネルを中心に解説します。

3. Consoleを使った簡易デバッグ

JavaScriptのデバッグを始める時、まず使うのがConsoleです。console.log() で値を確認したり、エラーの原因を探したりできます。

Consoleの開き方

開発ツールを開いた状態で、上のタブから Console をクリックするだけです。

よく使うConsoleコマンド

console.log(‘デバッグ用のログ表示’);
console.error(‘エラーの表示’);
console.table([{id:1,name:’Alice’},{id:2,name:’Bob’}]);
特に console.table() は配列やオブジェクトを表形式で表示できるので便利です。

4. Sourcesタブでブレークポイントを設定

本格的にデバッグしたいなら、console.log() だけじゃ限界があります。そこで使うのが ブレークポイント。コードの任意の行で処理を一時停止して、中の状態を確認できます。

ブレークポイントの設定方法

  1. 開発ツールの Sources タブを開く
  2. 左側に読み込まれたJavaScriptファイル一覧が出る
  3. 止めたい行番号をクリック

青いマーカーがつけばブレークポイントが設定されています。

デバッガ操作ボタンの説明

ボタン 動作
▶️ 再開 一時停止から再開
⏭ Step over 次の行に進む(関数の中には入らない)
⏬ Step into 関数の中に入る
⏫ Step out 関数から抜ける

5. 変数の確認方法(スコープ・ウォッチ式)

ブレークポイントで一時停止すると、画面右側に変数の状態が表示されます。ここで実行中の関数の状態を詳しく追いながらデバッグできます。

変数の確認パネル

一時停止中に右側に表示される内容は次の通りです:

エリア 概要
Call Stack 現在の関数呼び出しの履歴
Scope Variables ローカル変数・クロージャ変数・グローバル変数
Watch Expressions 監視したい式や変数を手動で追加

特に Watch Expressions は便利で、追いかけたい変数名(例: user.id)を登録しておくと常に値が追えるようになります。

6. ネットワーク通信の確認方法

AjaxのエラーやAPIレスポンスのチェックもSafariの開発ツールで確認できます。

Networkタブの使い方

  1. 開発ツールで Network タブを開く
  2. ページをリロードすると通信の一覧が表示される
  3. 任意の通信をクリックすると詳細を確認できる

確認できる項目

項目 説明
Headers 通信のヘッダー情報(URL、メソッド、ステータス)
Preview JSONレスポンスのプレビュー
Response APIの生データ
Timing 通信の速度情報

重要なのは 失敗したリクエストが赤色で表示される 点です。CORSエラーや404/500トラブルもここで発見できます。

7. イベントリスナーのデバッグ

クリックイベントやマウス操作、フォーム送信などのイベントが正しく動かないときは、Safariの開発ツールでイベントリスナーを確認できます。

イベントリスナーを確認する方法

  1. Elementsタブを開く
  2. 対象のHTML要素をクリック
  3. 右側パネルの Event Listeners を展開

ここに、その要素に紐付いたイベント(clickchangesubmit など)が表示され、クリックするとコードの設置場所を確認できます。

実践例

ボタンにイベントが効かない場合:

  • そもそもイベントが追加されていなかった
  • JavaScriptの読み込み順が間違っていた
  • stopPropagation() が影響していた

このような原因を簡単に特定できるため、DOMイベントのトラブルにはかなり有効です。

8. デバッガの便利機能(条件付きブレークポイント / ログポイント)

デバッグ効率を上げるなら、普通のブレークポイントだけじゃなく 条件付きブレークポイントログポイント も活用しましょう。

条件付きブレークポイント

ループ内などで、特定の条件のときだけ停止したいケースに使います。

設定方法

  1. ブレークポイントを右クリック
  2. Edit Breakpoint を選択
  3. 例: i === 10 のように条件を書く

ログポイント(Logpoint)

処理を止めずにログだけ出したい場合に使える機能。

設定方法

  1. 行番号を右クリック
  2. Add Logpoint を選択
  3. ログさせたい内容を入力(例: user.id

これは console.log() をいちいち書かなくても済むので、コードを汚さずに調査できます。

9. モバイルSafariのデバッグ(iPhone/iPad)

スマホ表示の不具合を調べたいときは、iPhone実機を使ったデバッグが便利です。Safariの開発ツールはMacとiPhoneをUSB接続すれば、スマホの中身をそのまま確認できます。

実機デバッグの手順

  1. iPhoneをUSBケーブルでMacに接続
  2. iPhoneで 設定 > Safari > 詳細 > Webインスペクタ をオン
  3. MacでSafariを開き、メニューバーの 開発 をクリック
  4. 接続中のiPhone名が表示されるので選択

これで、iPhoneで開いているWebページのHTML/CSS/JavaScriptをMacから確認・デバッグできるようになります。

✅ ポイント 実機でしか再現しないバグ(特にiOS特有の挙動やCSS問題)を調査できるのがメリットです。

10. まとめ

Safariの開発ツールはChrome DevToolsより情報が少ないですが、実はデバッグ機能はかなり充実しています。特にApple製デバイスでWeb開発をするなら、Safariのデバッガは必須です。

本記事で紹介した機能まとめ

  • Consoleでログ確認と軽い検証
  • Sourcesでブレークポイントを使った本格デバッグ
  • Scope/Watchで変数の状態を確認
  • NetworkでAPI通信を調査
  • Event Listenersでイベントの発火確認
  • 条件付きブレーク・ログポイントで効率アップ
  • iPhone実機デバッグにも対応

この記事があなたのSafariデバッグの助けになれば嬉しいです。