後で変更する可能性のあるオブジェクトまたは配列を検査するときは、良い方法です。
debugger
...デバッグしたいコード内のポイントの後。これにより、この時点でコードの実行が一時停止されます。これは、その後の変更ではなく、この時点での状態を確実に確認できることを意味します。
展開に失敗したということは、オブジェクトがその後メモリから削除されたことを意味している可能性があります。削除またはガベージ コレクションが行われたか、(特に Node.js スクリプトで Chrome 開発ツールを使用している場合) スクリプトが完了した可能性があるため、すべてrefs はどこにもポイントしません。
実際、間違いなくより良い方法は、代わりにを使用debugger
console.log
し、ローカル変数で調べたいものを見つけることです。
window.onbeforeunload = function (e) {
debugger; // Now go find `e` in the local variables section
}
このようにして、より多くのコンテキストにアクセスでき、コードの後半で発生する出力の変更について心配する必要がなくなります。
JavaScript では、オブジェクトを指す変数を扱うときはいつでも、そのオブジェクトの最新の状態へのライブ参照を扱っていることを常に覚えておいてください。
console.log
オブジェクトのコンテンツではなく、参照をログに記録します。ログに記録された参照を表示して展開すると、ログに記録した時点ではなく、参照した時点でその参照が何を指しているのかが表示されます。メモリから削除されているか、再割り当てされている場合、これは何もない可能性があります。
文字列と数値を指す変数は、参照ではなく値を指すため、別のオプションとして、オブジェクトの文字列化されたバージョンをログに記録することconsole.log(JSON.stringify(someObject))
もできます (ただし、その出力は読みにくい場合があります)。通常は、このdebugger
アプローチの方が優れています。