ホームページ > ウェブフロントエンド > jsチュートリアル > Chrome の JavaScript コンソールに元の値ではなく変更されたオブジェクト値が表示されるのはなぜですか?

Chrome の JavaScript コンソールに元の値ではなく変更されたオブジェクト値が表示されるのはなぜですか?

Susan Sarandon
リリース: 2024-12-24 03:20:18
オリジナル
294 人が閲覧しました

Why Does Chrome's JavaScript Console Show Modified Object Values Instead of Original Values?

オブジェクトに対する Chrome の JavaScript コンソール評価動作

質問:

JavaScript コード スニペットでは、配列が定義されており、コンソールに出力されます。配列の要素を変更した後、再度出力されます。 Firefox のコンソールには両方の正しい値が表示されますが、Chrome のコンソールはオブジェクトを遅延評価し、両方のインスタンスの変更された値を出力します。

コードにエラーがありますか、それとも Chrome コンソールの動作ですか?

答え:

WebKit のバグ レポート (現在は修正されています) で指摘されているように、 Chrome のコンソールでのオブジェクトの評価に関する問題です。

説明と回避策:

この動作は、Chrome のコンソールのオブジェクトに対する遅延評価の性質に起因します。これらはコンソールに表示されるときにのみ評価されるため、表示前にオブジェクトが変更されると誤った出力が発生します。

この問題を回避するには、オブジェクトに対して .toString() を呼び出して、この表現は、後続のコード変更によって変更されません。コンソールに出力する前に .toString() を呼び出すと、正しい値が表示されます。

修正コード:

var s = ["hi"];
console.log(s.toString()); // Prints "hi"
s[0] = "bye";
console.log(s.toString()); // Prints "bye"
ログイン後にコピー

この修正されたアプローチを使用すると、コンソール出力がChrome の場合は Firefox の場合と同じになり、配列の両方の正しい値が表示されます。

以上がChrome の JavaScript コンソールに元の値ではなく変更されたオブジェクト値が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート