問題:
Google Chrome で、ネストされた配列またはオブジェクトは console.log() を使用してログに記録されます。その後、配列またはオブジェクトの値を変更すると、ログ記録時の値ではなく、更新された値がコンソール出力に表示されます。
解決策:
この動作は、Google Chrome の console.log() 機能のバグが原因です。
説明:
Webkit Chrome で使用される基盤となるレンダリング エンジンである には、コンソールでログに記録されたオブジェクトと配列を展開すると、ログ記録時のオブジェクトの状態が常に正確に表現されるとは限らないという既知のバグがあります。
影響:
この不一致は、特に中間値の検査をコンソールに依存している場合に、混乱やデバッグの困難を引き起こす可能性があります。
問題の再現:
問題を再現するには、次の手順に従います:
次のスクリプトを Web ページに追加します:
<code class="js">var greetings=['hi','bye']; console.log(greetings); setTimeout(function(){ greetings.push('goodbye'); },3000);</code>
開く新しいウィンドウでページを表示します:
バグ ステータス:
このバグは Webkit で修正されましたが、まだ Google Chrome には取り込まれていません。
以上がGoogle Chromeではconsole.log()は常に配列とオブジェクトの初期値を表示しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。