Mengenal pasti Rujukan Langsung dalam Console.log
Dalam JavaScript, console.log() memaparkan rujukan langsung kepada objek, bukannya syot kilat . Ini boleh menyebabkan kekeliruan apabila bilangan elemen kanak-kanak yang dilaporkan oleh harta anak unsur bercanggah dengan bilangan elemen yang dipaparkan dalam paparan dikembangkan.
Memahami Rujukan Langsung
Apabila mengelog objek menggunakan console.log(), konsol mengakses rujukan langsung kepada objek itu. Ini bermakna bahawa sebarang perubahan yang dibuat pada objek selepas pengelogan akan ditunjukkan apabila mengembangkannya dalam konsol.
Contoh
Pertimbangkan kod berikut:
const element1 = document.getElementById('element1'); console.log(element1.children); // Initially shows length: 0 setTimeout(() => { element1.children[0].appendChild(element1.children[1]); console.log(element1.children); // Now shows length: 1 (but 3 expanded elements) }, 1000);
Dalam contoh ini, log awal melaporkan elemen1.kanak-kanak mempunyai panjang 0, walaupun elemen itu mempunyai tiga elemen anak. Walau bagaimanapun, selepas kelewatan 1 saat, elemen anak dialihkan dan paparan dikembangkan menunjukkan tiga elemen, manakala panjangnya kekal 1 dalam log.
Resolusi
Untuk menyelesaikan isu ini:
Jika elemen kanak-kanak dihuni secara dinamik, pertimbangkan untuk menunggu sehingga ia dipaparkan sebelum berinteraksi dengannya.
Atas ialah kandungan terperinci Mengapa Adakah `console.log()` Menunjukkan Kiraan Elemen Kanak-kanak Tidak Konsisten untuk Objek Langsung dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!