変数を調査する
コードがブレークポイントで停止したときはデバッガーの 変数ペイン で、変数の状態を調査できます:
変数はスコープによってグループ化されます: Function スコープには user
や greeting
といった関数で定義したローカル変数はもちろん、ビルトインの arguments
および this
変数も表示します。同様にグローバルスコープでは localStorage
や console
といったビルトインのグローバル変数だけでなく、greetme
といった独自に定義したグローバル変数も表示します。
それぞれのオブジェクトは三角印をクリックすると、プロパティを表示するように拡張できます。
変数名にマウスポインターを重ねると、その変数に関する付加情報を提供するツールチップを表示します。これらのプロパティの意味について、詳しくは Object.defineProperty()
をご覧ください。
スクリプトフィルター で "*" 修飾子を使用するか、(デバッガーの設定で有効にしている場合は) 変数フィルタボックスに入力することで、表示する変数をフィルターできます。
ソース内に存在する変数が JavaScript エンジンの最適化により削除されている場合は、変数ビューに変数を表示しますが値は (optimized away)
となっており、編集ができません。以下のスクリーンショットでは、変数 upvar
が最適化で削除されています:
変数を変更する
コードがブレークポイントで停止したときに、デバッガーの 変数ペイン で変数を変更できます。変数の現在の値をクリックすると、そこに入力できるようになります:
式をウォッチする
ウォッチ式は、実行が停止するたびに評価される式です。よって、これらの式の結果を調査できます。これらは、コード内で必ずしも調査を行える状態であるとは限らない不変量の調査ができる点が役に立ちます。"ウォッチ式を追加" と表示されているボックスをクリックして、コードをステップ実行したときに出力内容を監視したい JavaScript 式を入力することで、ウォッチ式を追加します。
そして、コードの実行を開始します。コードのステップ実行を始めるまでウォッチ式は何も行いませんので、ブレークポイントに達するまでは何も起きません。ブレークポイントに達すると、アクティブな式とその値を表示するボックスが現れます:
コードをステップ実行して、値の変化に応じた式の結果をウォッチできます。値が変わるたびに、ボックスが一時的に黄色に光ります。式の隣にある "x" 印のアイコンをクリックすると、ウォッチ式を削除できます。またもちろん、ウォッチ式は同時に複数設定できます。