Heim > Web-Frontend > js-Tutorial > Gibt Console.log() Objekte und Arrays in Google Chrome korrekt aus?

Gibt Console.log() Objekte und Arrays in Google Chrome korrekt aus?

Barbara Streisand
Freigeben: 2024-10-20 12:30:02
Original
551 Leute haben es durchsucht

Does Console.log() Correctly Output Objects and Arrays in Google Chrome?

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:

  1. Ein verschachteltes Array erstellt wird (z. B. [[345,"test"]]).
  2. Das Array wird in der Konsole protokolliert.
  3. Ein innerer Array-Wert wird geändert und console.log() zeigt anschließend den geänderten Wert an, nicht die Werte des Arrays zum Zeitpunkt der Ausführung.
<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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage