Maison > Article > interface Web > Console.log() affiche-t-il correctement les objets et les tableaux dans Google Chrome ?
Console.log() Incohérence avec les objets et les tableaux dans Google Chrome
Console.log(), un outil de débogage dans Google Chrome, présente un comportement particulier lorsqu'il est utilisé avec des objets et des tableaux. Cette anomalie se manifeste lorsque :
<code class="javascript">var test = [[2345235345,"test"]] console.log(test); test[0][0] = 1111111; // outputs: [[1111111,"test"]] var testb = {}; testb.test = "test"; console.log(testb); testb.test = "sdfgsdfg"; // outputs: {"testb":"test"} var testc = ["test","test2"]; console.log(testc); testc[0] = "sdxfsdf"; // outputs: ["test","test2"]</code>
Fait intéressant, ce comportement est exclusif à Chrome ; Firefox ne l'expose pas. De plus, si le code est parcouru ligne par ligne dans le débogueur Chrome, console.log() affiche les valeurs correctes.
Origine du phénomène
Une enquête plus approfondie a révélé qu'il s'agit d'un bug connu qui a été résolu dans Webkit mais pas encore intégré à Google Chrome. Le bug a été initialement signalé en mars 2010 (https://bugs.webkit.org/show_bug.cgi?id=35801) et un correctif a été mis en œuvre en août 2012. Cependant, il n'a pas encore été intégré à Chrome.
Impact sur l'état de la console
Le comportement de console.log() est influencé par l'état de la fenêtre de la console. Si la fenêtre de la console est ouverte au moment du chargement d'un script, console.log() affichera la valeur actuelle des tableaux et des objets. Cependant, si la fenêtre de la console est fermée et ouverte après le chargement du script, console.log() affichera les valeurs modifiées, même si elles ont été modifiées après l'exécution de console.log().
<code class="javascript">var greetings=['hi','bye']; console.log(greetings); setTimeout(function(){ greetings.push('goodbye'); },3000);</code>
Si le script ci-dessus est exécuté avec la fenêtre de console déjà ouverte, console.log() affichera deux éléments. Si la fenêtre de la console est fermée et rouverte après le chargement de la page, console.log() affichera trois éléments, reflétant l'état modifié du tableau.
Cette particularité suggère un bug potentiel dans la fonctionnalité console.log() de Google Chrome. , qui n'est pas corrigé dans la version actuelle de 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!