Lors du débogage du code dans Google Chrome, il était observé que console.log() se comportait étrangement lorsqu'il s'agissait de tableaux imbriqués. Lorsqu'un tableau était journalisé, la modification de sa valeur interne après la journalisation entraînait que la sortie journalisée reflétait la valeur mise à jour au lieu de la valeur au moment de la journalisation. Ce comportement était absent dans Firefox.
L'enquête a en outre révélé que l'incohérence survenait lorsque la console Chrome était ouverte pendant le chargement. La console étant initialement fermée et ouverte après le chargement de la page, console.log() affichait les valeurs réelles du tableau au moment de la journalisation.
Après une recherche approfondie, il a été découvert que ce comportement était reconnu comme un bug dans Webkit. Cependant, un correctif a été implémenté en août 2012 et n'a pas encore été publié dans Google Chrome.
Un développeur Chromium a commenté le bug, exprimant que le clonage d'objets lors de la console pourrait ne soit pas réalisable. De plus, écouter les modifications des propriétés des objets pour conserver des valeurs précises ne serait pas pratique.
L'implémentation actuelle de console.log() évite de cloner des objets lors de leur affichage dans la console. Au lieu de cela, des aperçus abrégés sont générés lors de la journalisation, fournissant un instantané des propriétés de l'objet. Cela ne se produit que si la console est déjà ouverte, ce qui explique la différence de comportement selon l'état initial de la console.
Ce comportement incohérent dans console.log() de Google Chrome est en raison de l'implémentation de la gestion des objets dans la console. Le comportement attendu doit rester car l'aperçu reflète les valeurs de l'objet au moment de la journalisation. Les développeurs doivent être conscients de ce comportement et utiliser des méthodes de débogage alternatives lorsque cela est possible.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3