ホームページ > 記事 > ウェブフロントエンド > 超実践的な JavaScript デバッグ スキル
この記事では、javascript に関する関連知識を提供します。主に、ソース パネル、ブレークポイントの設定、その他の関連問題など、JavaScript のデバッグ スキルを紹介します。皆様のお役に立てれば幸いです。
関連する推奨事項: JavaScript ビデオ チュートリアル
フロントエンド開発として、console.log を使用することがよくあります。 () はプログラムの問題をデバッグします。この方法でもいくつかの問題を解決できますが、段階的なデバッグを実行できるツールほど効率的ではありません。この記事では、Google Chrome 開発者ツールを使用して JavaScript コードを簡単にデバッグする方法を学びます。
ほとんどのブラウザは、JavaScript アプリケーションをデバッグするための DevTools を提供しており、同様の方法で使用されます。あるブラウザでデバッグ ツールの使用方法を学べば、他のブラウザでも簡単に使用できます。ブラウザ上でご利用ください。
以下は「Greet Me」プログラムを例にしていますが、このプログラムは非常にシンプルで、名前と願い事を入力するだけで最後に文が出力されます:
2 つのフォーム値の後に入力すると、「wish」部分が正しく出力されず、代わりに NaN が出力されます。コードのオンライン デバッグ: https://greet-me-debugging.vercel.app/。次に、位置決めコードの問題をデバッグするために Chrome DevTools にどのような機能があるかを見てみましょう。
DevTools には、DOM 検査、分析、ネットワーク呼び出し検査など、デバッグ用のさまざまなツールが用意されています。ここで説明したいのは、JavaScript のデバッグに役立つ「ソース」パネルについてです。ショートカット F12 を使用してコントロール パネルを開き、[ソース] タブをクリックして [ソース] パネルに移動することも、ショートカット Command Option I (Mac) または Control Shift I (Windows、Linux) を使用して直接開くこともできます。
ソース パネルは主に 3 つの部分で構成されています:
ファイル ナビゲーション領域:ページ 要求されたすべてのファイルがここにリストされます;
コード編集エリア: ファイル ナビゲーション バーからファイルを選択すると、ファイルの内容がここにリストされます。ここにコード;
デバッガー領域: ここには、ブレークポイントの設定、変数値の確認、実行ステップの観察などに使用できるツールが多数あります。
DevTools ウィンドウの幅が広い場合、または別のウィンドウで開かない場合は、デバッガー セクションがコード エディターの右側に表示されます。
コードの 6 行目にブレークポイントが設定されており、ここでコードが実行されるとコードは一時停止します。
2. 条件付きブレークポイントの設定条件付きブレークポイントを設定する手順: クリックして [ソース] タブに切り替えます;##ファイル ナビゲーション セクションからデバッグが必要なソース ファイルを選択します。
Enter キー (Enter) を押してブレークポイントをアクティブにします。ブレークポイントが中断され、ドット行の上部にオレンジ色のアイコンが表示されます:
print() メソッドの name 変数値が Joe の場合、コードの実行は一時停止されます。条件付きブレークポイントは、デバッグするコードのおおよその範囲が確実である場合にのみ使用されることに注意してください。
イベント リスナーにブレークポイントを設定する手順:
クリックして [ソース] タブに切り替えます。
デバッガー領域で [イベント リスナー ブレークポイント] オプションを展開します。
#イベント リストからイベント リスナーを選択してブレークポイントを設定します。プログラムにはボタンのクリック イベントがあり、ここではマウス イベント オプションでクリックを選択します。
ヒント: このオプションは、イベントの発生後に実行されるイベント リスナー コードを一時停止したい場合に使用できます。
DevTools は、DOM の検査とデバッグにも強力です。 DOM 内で何かが追加、削除、または変更されたときにコードの実行を一時停止するブレークポイントを設定できます。
DOM にブレークポイントを設定する手順:
クリックして [要素] タブに切り替えます;
ブレークポイントを見つけますブレークポイント要素を設定したい;
要素を右クリックしてコンテキスト メニューを表示し、[ブレークオン] オプションを選択して、サブツリーの変更、属性の変更、およびノードの削除のいずれかを選択します。 :
これら 3 つのオプションの意味は次のとおりです。
サブツリーの変更: ブレークポイントノードの内部子ノード変更;
属性変更: ノード属性変更時のブレークポイント;
ノード削除: ノード削除時のブレークポイント。
上記のように、出力メッセージ内の p の DOM が変更されたときにブレークポイントを設定します。ボタンをクリックするとpに挨拶メッセージが出力され、子ノードの内容が変化すると割り込みが発生します。
注: このオプションは、DOM の変更によってエラーが発生したと思われる場合に使用できます。DOM の変更が中断されると、関連する JavaScript コードの実行が自動的に中断されます。
これで、ブレークポイントを設定する方法がわかりました。複雑なデバッグ状況では、これらのデバッグを組み合わせて使用する必要がある場合があります。デバッガーには、コードを段階的に実行するための 5 つのコントロールが用意されています。
これらのコントロールの使用方法を見てみましょう。
このオプションを使用すると、実行時に JavaScript コードを 1 行ずつ実行できます。途中に関数呼び出しがある場合は、単一の-step 実行でも関数に入り、1 行ずつ実行して終了します。
このオプションを使用すると、コードの実行時に一部のコードをスキップできます。場合によっては、特定の機能が正常であると判断し、それらを確認するのに時間をかけたくない場合は、スキップ オプションを使用できます。
次は、 logger() 関数のシングルステップ実行であり、関数の実行をスキップします:
関数についてさらに詳しく知るには、このオプションを使用します。関数にステップインするときに、関数の動作がおかしいと感じて調べたい場合は、このオプションを使用して関数内に入り、デバッグできます。
次は、logger() 関数のシングルステップ実行です:
シングルステップで 関数を実行するとき、実行を続行せずに関数を終了したくない場合があるため、これらのオプションを使用して関数を終了できます。
次は、 logger() 関数に入り、すぐに終了します:
場合によっては、間にデバッグを行わずに 1 つのブレークポイントから別のブレークポイントにジャンプしたいことがあります。このオプションを使用して次のブレークポイントにジャンプできます:
行単位のデバッグを実行する場合は、変数のスコープと値、および関数呼び出しのコール スタックを確認します。これら 3 つのオプションは、デバッガー領域で使用できます:
[スコープ]オプションでローカル スコープとグローバル スコープの内容と変数を表示でき、また、これのリアルタイム ポイントも確認できます:
呼び出しスタック パネルは、関数実行スタックを識別するのに役立ちます:
コード内の値を確認することは、コード内のエラーを特定する主な方法です。ステップ実行中に、変数の上にマウスを置くだけで値を確認できます。
以下に、コード実行時の変数名のチェック値を示します。
さらに、コードの一部を次のように選択できます。値を確認する式。次の例では、式 document.getElementById('m_wish') が値を確認するために選択されています:
4. WatchWatch セクションでは次のことが可能です。 1 つ以上の式を追加し、実行時にその値を監視します。この機能は、コード ロジックの外側で計算を実行する場合に非常に便利です。コード領域の任意の変数を組み合わせて、有効な JavaScript 式を形成できます。実行を段階的に進めていくと、式の値を確認できます。 ウォッチを追加する手順は次のとおりです:#上記の方法ではブレークポイントは削除されず、一時的に非アクティブ化されるだけであることに注意してください。これらのブレークポイントを再度アクティブにするには、ブレークポイントをもう一度クリックするだけです。
チェックボックスのチェックを外すと、[ブレークポイント] パネルから 1 つ以上のブレークポイントを削除できます。すべてのブレークポイントは、右クリックして [すべてのブレークポイントを削除] オプションを選択することで削除できます:
Visual Studio 一部コード内の実用的なプラグインは、JavaScript コードのデバッグに使用できます。 「Debugger for Chrome」というプラグインをインストールしてコードをデバッグできます:
インストール後、左側の実行オプションをクリックし、実行/デバッグするための構成を作成します。 JavaScript アプリケーション プログラム。
これにより、launch.json という名前のファイルが作成されます。このファイルには、いくつかの設定情報が含まれています:
{ "version": "0.2.0", "configurations": [ { "type": "chrome", "request": "launch", "name": "Debug the Greet Me app", "url": "<http://localhost:5500>", "webRoot": "${workspaceFolder}" } ] }
次のパラメーターを変更できます:
name: 任意の名前;
url: ローカルで実行されている URL;
webRoot: デフォルト値は $ { workspaceFolder}、現在のフォルダー。プロジェクトエントリーファイルに変更できる場合があります。
最後のステップでは、左上隅にある再生アイコンをクリックしてデバッグを開始します。
このデバッガーは次のようなものです。 DevTools には主に次のセクションが含まれます:
デバッグを有効にします。再生ボタンを押してデバッグ オプションを有効にします。
ブレークポイントをステップスルーし、デバッグを一時停止または停止するためのコントロール。
ソース コードにブレークポイントを設定します。
変数の範囲と値を表示するスコープ パネル。
式を作成および監視するための監視パネル。
実行された関数の呼び出しスタック。
有効、無効、削除するブレークポイントのリスト。
デバッグ コンソールはコンソール ログ メッセージを読み取ります。
最后,回到最开始的问题,这里不再一步步调试,通过上述的调试方法判定,只需要在 wish 变量前面加一个 + 即可:
const message = 'Hello ' + name + ', Your wish `' + + wish + '` may come true!';
相关推荐:javascript学习教程
以上が超実践的な JavaScript デバッグ スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。