objekte und console.log: Eine Kuriosität enträtselte
Wenn Sie mit Objekten und Console.log arbeiten, können Sie ein merkwürdiges Verhalten aufnehmen. Lassen Sie uns dieses Geheimnis entwirren, indem wir diesen Code -Snippet analysieren:
foo = [{id: 1},{id: 2},{id: 3},{id: 4}, {id: 5}, ]; console.log('foo1', foo, foo.length); foo.splice(2, 1); console.log('foo2', foo, foo.length);
In Chrome erzeugt dies die unerwartete Ausgabe:
foo1 [Object, Object, Object, Object, Object] 5 0: Object 1: Object 2: Object 3: Object length: 4 __proto__: Array[0] 5 (index):23 foo2 [Object, Object, Object, Object] 4 0: Object 1: Object 2: Object 3: Object length: 4 __proto__: Array[0]
Die asynchrone Prüfung
Der Schlüssel zum Verständnis dieses Verhaltens liegt in der asynchronen Natur der Objektuntersuchung über Console.log. Während die Konsole einen Verweis auf das Objekt synchron empfängt, zeigt sie ihre Eigenschaften erst an, bis Sie sie manuell erweitern. Dies geschieht asynchron und führt zur scheinbar unlogischen Ausgabe.
Debugging -Techniken
, um diese Inkonsistenz zu vermeiden, betrachten Sie diese Debugging -Techniken:
individuelle Werte:
das Objekt. console.log (obj.foo, obj.bar, obj.baz);)
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3