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

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

Patricia Arquette
Patricia Arquetteoriginal
2024-10-20 12:34:02381parcourir

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!

Déclaration:
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