Inkonsistenz von Console.log() mit Objekten und Arrays in Google Chrome
Console.log(), ein Debugging-Tool in Google Chrome, zeigt ein besonderes Verhalten bei der Verwendung mit Objekten und Arrays. Diese Anomalie tritt auf, wenn:
<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>
Interessant ist dieses Verhalten ist exklusiv für Chrome; Firefox zeigt es nicht an. Wenn der Code im Chrome-Debugger Zeile für Zeile durchlaufen wird, zeigt console.log() außerdem die korrekten Werte an.
Ursprung des Phänomens
Weitere Untersuchungen ergaben, dass es sich um einen bekannten Fehler handelt, der in Webkit behoben, aber noch nicht in Google Chrome integriert wurde. Der Fehler wurde erstmals im März 2010 gemeldet (https://bugs.webkit.org/show_bug.cgi?id=35801) und im August 2012 wurde ein Fix implementiert. Er hat es jedoch noch nicht in Chrome geschafft.
Auswirkungen auf den Konsolenstatus
Das Verhalten von console.log() wird durch den Status des Konsolenfensters beeinflusst. Wenn das Konsolenfenster zum Zeitpunkt des Ladens eines Skripts geöffnet ist, zeigt console.log() den aktuellen Wert von Arrays und Objekten an. Wenn das Konsolenfenster jedoch geschlossen und geöffnet wird, nachdem das Skript geladen wurde, zeigt console.log() geänderte Werte an, auch wenn sie nach der Ausführung von console.log() geändert wurden.
<code class="javascript">var greetings=['hi','bye']; console.log(greetings); setTimeout(function(){ greetings.push('goodbye'); },3000);</code>
Wenn Das obige Skript wird bei bereits geöffnetem Konsolenfenster ausgeführt. console.log() zeigt zwei Elemente an. Wenn das Konsolenfenster nach dem Laden der Seite geschlossen und wieder geöffnet wird, zeigt console.log() drei Elemente an, die den geänderten Status des Arrays widerspiegeln.
Diese Besonderheit deutet auf einen möglichen Fehler in der console.log()-Funktionalität von Google Chrome hin , was in der aktuellen Version von Chrome nicht behoben wird.
Das obige ist der detaillierte Inhalt vonGibt Console.log() Objekte und Arrays in Google Chrome korrekt aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!