@@ -4,6 +4,11 @@ title: ブラウザの開発者ツール
44
55import inspectElementsVideo from " ./inspect-elements.mp4" ;
66import { GrSelect } from " react-icons/gr" ;
7+ import {
8+ VscDebugStepOver ,
9+ VscDebugStepInto ,
10+ VscDebugStepOut ,
11+ } from " react-icons/vsc" ;
712
813## 開発者ツールを起動する
914
@@ -27,14 +32,32 @@ Google Chrome 以外のブラウザにも開発者ツールは搭載されてい
2732
2833<video src = { inspectElementsVideo } muted controls />
2934
30- ### 演習
35+ ### 確認問題
3136
3237あなたのお気に入りのニュースサイトの記事をひとつ選び、その中に現れる人物名を、 ` Elements ` タブの機能を用いて自分の名前に変えてみましょう。悪用厳禁です!
3338
3439## デバッガ
3540
3641** デバッガ** は、プログラムのバグを探し、解決するために役立つソフトウェアです。ブラウザの開発者ツールには、通常 JavaScript のデバッガが搭載されています。
3742
43+ :::info
44+
45+ デバッガを使うために知っておくべきことは以下の 4 つです。
46+
47+ - ** ブレークポイント**
48+ 設置した行でプログラムの実行が一時停止するもので、Google Chrome の開発者ツールでは Sources タブからファイルを開くと表示される行番号をクリックすると設置できます。
49+
50+ - ** ステップオーバーボタン** (<VscDebugStepOver style = { { verticalAlign: " middle" }} />)
51+ 現在の行を実行し、次の行に進む操作です。現在止まっている行で関数が呼び出される場合は、その関数内の処理を全て実行して次の行で止まるものです。
52+
53+ - ** ステップインボタン** (<VscDebugStepInto style = { { verticalAlign: " middle" }} />)
54+ 現在の行が関数呼び出しだった場合、実行が関数の中に移ります。処理の流れを 1 個ずつ確認できます。
55+
56+ - ** ステップアウトボタン** (<VscDebugStepOut style = { { verticalAlign: " middle" }} />)
57+ 関数内で処理が止まっている場合、その関数内の残りの処理を全て実行し、関数を呼び出している行の次の行へ移動します。
58+
59+ :::
60+
3861デバッガを用いることで、プログラムが実行される様子を細かく観測することができます。次のプログラムで試してみましょう。
3962
4063``` html title="index.html"
@@ -77,38 +100,37 @@ JavaScript の実行がブレークポイントを設定した地点に差し掛
77100
78101:::warning
79102
80- 下の画像の中の、緑色の四角で表示されている部分は 、** これから実行されようとしている行** を表します。つまり、5 行目のプログラムは、この時点ではまだ実行されていません。
103+ 下の画像の中の、オレンジ色の線で強調されている部分は 、** これから実行されようとしている行** を表します。つまり、5 行目のプログラムは、この時点ではまだ実行されていません。
81104
82105:::
83106
84107![ ブレークポイントの設置] ( ./set-breakpoint.png )
85108
86- 続いて、** ステップ オーバー** ボタンを押します。ステップ オーバーは、現在の行を実行し、次の行に進む操作です。 これにより、緑色の四角が 6 行目に移ります。
109+ 続いて、** ステップ オーバー** ボタンを押します。これにより、オレンジ色の線で強調された部分が 6 行目に移ります。
87110
88111![ ステップ オーバー] ( ./step-over.png )
89112
90- この状態で、` resultElement ` の部分にマウスカーソルを乗せてみましょう。` resultElement ` 変数の中身が表示されます。変数の値がオブジェクトの場合は、その内部を見ることもできます。おなじみの ` textContent ` プロパティなども存在していることが分かりますね。
113+ この状態で、` resultElement ` の部分にマウスカーソルを乗せてみましょう。` resultElement ` 変数の中身が表示されます。変数の値がオブジェクトの場合は、その内部を見ることもできます。下にスクロールするとおなじみの ` textContent ` プロパティなども存在していることが分かりますね。
91114
92115![ オブジェクトの中身を見る] ( ./inspect-object.png )
93116
94- 次は、** ステップ イン** ボタンを押してみましょう。現在の行が関数呼び出しだった場合、実行が関数の中に移ります 。
117+ 今度はブレークポイントを 6 行目に設置してみましょう。ページを更新して、 次は、** ステップ イン** ボタンを押してみましょう。実行が ` add ` 関数の中に移ります 。
95118
96119![ ステップ イン] ( ./step-in.png )
97120
98121右側のパネルの ` Call Stack ` (** コール スタック** ) 部分を見てみてください。ここには、現在実行されている関数が、どの順番で実行されているのかが表示されています。この場合は、` script.js ` というファイルの 6 行目から ` add ` 関数が呼び出されていることが分かります。
99122
100123![ コール スタック] ( ./call-stack.png )
101124
102- 最後に 、** ステップ アウト** ボタンを押しましょう。このボタンを押すと 、現在実行されている関数が最後まで実行され、呼び出し元の関数の実行に戻ります 。
125+ 次に 、** ステップ アウト** ボタンを押しましょう。このボタンにより 、現在実行されている関数が最後まで実行され、実行が ` add ` 関数の外に出て、7 行目の先頭で処理が止まっているのが分かると思います 。
103126
104127![ ステップ アウト] ( ./step-out.png )
105128
106129:::tip[ ` console.log ` 関数]
107130
108- ` console.log ` 関数は、メッセージをブラウザの開発者ツールの ` Console ` に出力します。
109- ` console.log ` 関数を使ってプログラムの実行中に値の変化を確認したり、問題が発生した時に原因を特定したりすることができます。
131+ ` console.log ` 関数は、メッセージをブラウザの開発者ツールの ` Console ` に出力します。` console.log ` 関数を使ってプログラムの実行中に値の変化を確認したり、問題が発生した時に原因を特定したりすることができます。
110132
111- ``` javascript
133+ ``` javascript title="script.js"
112134const x = 5 ;
113135const y = 10 ;
114136const sum = x + y;
@@ -117,7 +139,7 @@ console.log("x + y は、", sum);
117139
118140:::
119141
120- ### 演習
142+ ### 確認問題
121143
122144次のプログラムの 5 行目では、` add ` 関数は 3 回実行されます。どのような順番で関数が呼び出されているか、デバッガを用いて確認してみてください。
123145
0 commit comments