Maison > interface Web > js tutoriel > le corps du texte

Pourquoi Console.log() affiche-t-il les valeurs modifiées au lieu des valeurs d'origine dans Chrome ?

Patricia Arquette
Libérer: 2024-10-20 12:34:02
original
379 Les gens l'ont consulté

Why Does Console.log() Display Modified Values Instead of Original Values in Chrome?

Console.log() Incohérences dans Chrome lors de la journalisation d'objets et de tableaux

Dans Google Chrome, un comportement inattendu se produit lors de l'utilisation de console.log( ) pour enregistrer des tableaux ou des objets imbriqués. Si vous modifiez la valeur la plus interne d'un tableau ou d'un objet après l'avoir enregistré, console.log() affichera la valeur modifiée, et non les valeurs d'origine au moment de la journalisation.

Étapes pour reproduire

Pour recréer le problème :

  1. Créez un tableau imbriqué, par exemple [[345, "test"]].
  2. Connectez le tableau à la console avec console.log().
  3. Modifiez la valeur du tableau interne, par exemple, test0 = 1111111.
  4. Console.log() affichera désormais [[1111111, "test"]].

Cette incohérence affecte également les objets et les tableaux stockés dans des variables (testb, testc).

Problème sous-jacent

Après des recherches approfondies, il a été a découvert que ce problème avait déjà été signalé comme un bogue dans WebKit (https://bugs.webkit.org/show_bug.cgi?id=35801). Les développeurs de Chromium ont reconnu le problème, mais ont déclaré qu'un correctif était peu probable en raison de limitations techniques.

Correction et incohérences

Cependant, un correctif a été implémenté dans WebKit en 2012. Malgré cela, Google Chrome n'a pas encore adopté le correctif. Par conséquent, le comportement de console.log() diffère selon que la fenêtre de la console est ouverte ou non au moment de la journalisation.

  • Fenêtre de la console ouverte : Console.log() sera afficher les valeurs actuelles, même si elles ont changé.
  • Fenêtre de la console initialement fermée : Console.log() affichera les valeurs au moment de la journalisation.

Conclusion

Ce bug dans la fonctionnalité console.log() de Google Chrome persiste et affecte les efforts de débogage. Il est recommandé d'être conscient de cette incohérence et d'envisager des méthodes de débogage alternatives jusqu'à ce que le problème soit résolu dans Chrome.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal