こんにちは。國府です。
はじめに
この記事では、Safariに標準搭載されている「開発ツール」を使って、JavaScriptのデバッグを効率的に行う方法をわかりやすく解説します。ChromeやFirefoxのDevToolsは有名ですが、MacユーザーならSafariでも十分に高度なデバッグが可能です。
目次
目次
- 開発ツールを有効にする方法
 - 開発ツールの基本構成
 - Consoleを使った簡易デバッグ
 - Sourcesタブでブレークポイントを設定
 - 変数の確認方法(スコープ・ウォッチ式)
 - ネットワーク通信の確認方法
 - イベントリスナーのデバッグ
 - デバッガの便利機能(条件付きブレークポイント/ログポイント)
 - モバイルSafariのデバッグ方法(iPhone/iPad)
 - まとめ
 
1. 開発ツールを有効にする方法
Safariの開発ツールは、初期設定では無効になっています。以下の手順で有効にしましょう。
- Safariを開く
 - メニューから 
Safari > 設定を選択 詳細タブを開く- 「メニューバーに“開発”メニューを表示」にチェック
 
これで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() だけじゃ限界があります。そこで使うのが ブレークポイント。コードの任意の行で処理を一時停止して、中の状態を確認できます。
ブレークポイントの設定方法
- 開発ツールの Sources タブを開く
 - 左側に読み込まれたJavaScriptファイル一覧が出る
 - 止めたい行番号をクリック
 
青いマーカーがつけばブレークポイントが設定されています。
デバッガ操作ボタンの説明
| ボタン | 動作 | 
| ▶️ 再開 | 一時停止から再開 | 
| ⏭ Step over | 次の行に進む(関数の中には入らない) | 
| ⏬ Step into | 関数の中に入る | 
| ⏫ Step out | 関数から抜ける | 
5. 変数の確認方法(スコープ・ウォッチ式)
ブレークポイントで一時停止すると、画面右側に変数の状態が表示されます。ここで実行中の関数の状態を詳しく追いながらデバッグできます。
変数の確認パネル
一時停止中に右側に表示される内容は次の通りです:
| エリア | 概要 | 
| Call Stack | 現在の関数呼び出しの履歴 | 
| Scope Variables | ローカル変数・クロージャ変数・グローバル変数 | 
| Watch Expressions | 監視したい式や変数を手動で追加 | 
特に Watch Expressions は便利で、追いかけたい変数名(例: user.id)を登録しておくと常に値が追えるようになります。
6. ネットワーク通信の確認方法
AjaxのエラーやAPIレスポンスのチェックもSafariの開発ツールで確認できます。
Networkタブの使い方
- 開発ツールで Network タブを開く
 - ページをリロードすると通信の一覧が表示される
 - 任意の通信をクリックすると詳細を確認できる
 
確認できる項目
| 項目 | 説明 | 
| Headers | 通信のヘッダー情報(URL、メソッド、ステータス) | 
| Preview | JSONレスポンスのプレビュー | 
| Response | APIの生データ | 
| Timing | 通信の速度情報 | 
重要なのは 失敗したリクエストが赤色で表示される 点です。CORSエラーや404/500トラブルもここで発見できます。
7. イベントリスナーのデバッグ
クリックイベントやマウス操作、フォーム送信などのイベントが正しく動かないときは、Safariの開発ツールでイベントリスナーを確認できます。
イベントリスナーを確認する方法
- Elementsタブを開く
 - 対象のHTML要素をクリック
 - 右側パネルの Event Listeners を展開
 
ここに、その要素に紐付いたイベント(click、change、submit など)が表示され、クリックするとコードの設置場所を確認できます。
実践例
ボタンにイベントが効かない場合:
- そもそもイベントが追加されていなかった
 - JavaScriptの読み込み順が間違っていた
 - stopPropagation() が影響していた
 
このような原因を簡単に特定できるため、DOMイベントのトラブルにはかなり有効です。
8. デバッガの便利機能(条件付きブレークポイント / ログポイント)
デバッグ効率を上げるなら、普通のブレークポイントだけじゃなく 条件付きブレークポイント と ログポイント も活用しましょう。
条件付きブレークポイント
ループ内などで、特定の条件のときだけ停止したいケースに使います。
設定方法
- ブレークポイントを右クリック
 - Edit Breakpoint を選択
 - 例: 
i === 10のように条件を書く 
ログポイント(Logpoint)
処理を止めずにログだけ出したい場合に使える機能。
設定方法
- 行番号を右クリック
 - Add Logpoint を選択
 - ログさせたい内容を入力(例: 
user.id) 
これは console.log() をいちいち書かなくても済むので、コードを汚さずに調査できます。
9. モバイルSafariのデバッグ(iPhone/iPad)
スマホ表示の不具合を調べたいときは、iPhone実機を使ったデバッグが便利です。Safariの開発ツールはMacとiPhoneをUSB接続すれば、スマホの中身をそのまま確認できます。
実機デバッグの手順
- iPhoneをUSBケーブルでMacに接続
 - iPhoneで 
設定 > Safari > 詳細 > Webインスペクタをオン - MacでSafariを開き、メニューバーの 開発 をクリック
 - 接続中の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デバッグの助けになれば嬉しいです。
