Lors du débogage du code dans Google Chrome, il a été 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.
Une 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 le 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.
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!