Heim >Web-Frontend >js-Tutorial >Warum zeigt mein „console.log' nach dem Spleißen unterschiedliche Array-Längen und Objektwerte an?

Warum zeigt mein „console.log' nach dem Spleißen unterschiedliche Array-Längen und Objektwerte an?

DDD
DDDOriginal
2024-12-24 02:24:11750Durchsuche

Why Does My `console.log` Show Different Array Lengths and Object Values After Splicing?

Seltsames Verhalten bei Objekten und Console.log

Der bereitgestellte Code zeigt eine seltsame Ausgabe in der Chrome-Konsole. Warum wird vor und nach dem Zusammenfügen eines Elements ein Array aus fünf Objekten angezeigt, wobei die Länge einen anderen Wert anzeigt?

Erklärung:

Console.log behandelt die Objektprüfung asynchron . Während die Konsole sofort einen Verweis auf das Objekt empfängt, zeigt sie seine Eigenschaften erst an, wenn es erweitert wird. Wenn das Objekt vor der Erweiterung geändert wird, spiegeln die angezeigten Daten die aktualisierten Werte wider.

Verhalten der Chrome-Konsole:

Die Chrome-Konsole zeigt dieses Verhalten mit einem „i“ in a an Wenn Sie mit der Maus darüber fahren, wird die folgende Meldung angezeigt: „Der Objektwert links wurde bei der Protokollierung als Schnappschuss erstellt, der Wert unten wurde gerade ausgewertet.“ jetzt. log(obj.foo, obj.bar, obj.baz);

JSON kodiert das Objekt: console.log(JSON.stringify(obj));JSON neu kodieren: console.log(JSON.parse(JSON.stringify(obj)));

Beachten Sie, dass JSON nicht serialisierbare Eigenschaften wie Funktionen und DOM-Elemente entfernt und bei Zirkelverweisen möglicherweise fehlschlägt. Daher wird empfohlen, für solche Objekte eine intelligente Deep-Copy-Variante zu verwenden.

    Das obige ist der detaillierte Inhalt vonWarum zeigt mein „console.log' nach dem Spleißen unterschiedliche Array-Längen und Objektwerte an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    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