1. ホーム
  2. javascript

[解決済み] Google Chromeでデバッグ中にjavascriptの変数値を変更することは可能ですか?

2023-03-10 18:11:49

質問

私は javascript のアプリをデバッグしています (Chrome dev tools を使用)、コードをステップ実行中にいくつかの変数の値を変更したいと思います。

それはまったく可能ですか?

試してみたところ、こんな感じになりました。

> modeline
1
> modeline=0
0             <<< seems to work but... 
> modeline
1             <<< ups!!

しかし、何ができて何ができないかを記したドキュメントを見つけることができません...。

どのように解決するのですか?

なぜこの回答はまだupvoteを得ているのですか?

について Mikaël Mayer さんの回答 によれば、これはもはや問題ではなく、私の回答は時代遅れです ( go() が返されるようになりました。 30 を返すようになりました(コンソールを混乱させた後)。 これは、2013 年 7 月に修正されました。 バグ レポート でリンクされている gabrielmaldi さんのコメント . それは私がまだupvoteを得るために私を心配させる - 私はupvoterが質問または私の答えのいずれかを理解していないと思われます。

歴史的な理由から、私のオリジナルの答えをここに残しておきますが アップヴォートする Mikaël さんの回答 その代わり .


ローカル変数を直接変更することはできませんが、オブジェクトのプロパティを変更することはできるというトリックがあります。 また、グローバル変数の値を変更することもできます。

var g_n = 0;
function go()
{
    var n = 0;
    var o = { n: 0 };
    return g_n + n + o.n;  // breakpoint here
}

コンソールを使用します。

> g_n = 10
  10
> g_n
  10
> n = 10
  10
> n
  0
> o.n = 10
  10
> o.n
  10

の結果を確認します。 go() の結果を確認し、ブレークポイントを設定し、コンソールでこれらの呼び出しを実行すると、結果が 0 ではなく 20 であることがわかります (しかし悲しいことに、30 ではありません)。