Rumah > hujung hadapan web > tutorial js > Mengapa Adakah `console.log()` Menunjukkan Nilai Objek Tidak Dijangka Selepas Pengubahsuaian?

Mengapa Adakah `console.log()` Menunjukkan Nilai Objek Tidak Dijangka Selepas Pengubahsuaian?

Mary-Kate Olsen
Lepaskan: 2024-12-20 17:07:10
asal
757 orang telah melayarinya

Why Does `console.log()` Show Unexpected Object Values After Modification?

Gelagat Objek dan console.log yang Membingungkan

Apabila menggunakan fungsi console.log() untuk memeriksa objek, anda mungkin menghadapi pelik keputusan. Sebagai contoh, jika anda log tatasusunan objek dan kemudian mengubah suainya menggunakan splice(), anda akan melihat bahawa konsol masih memaparkan tatasusunan asal.

Mengapa Ini Berlaku

Console.log memeriksa objek secara tidak segerak. Walaupun konsol mendapatkan semula rujukan kepada objek secara serentak, ia menangguhkan memaparkan sifatnya sehingga selepas anda mengembangkannya (tingkah laku ini berbeza-beza merentas pelayar). Akibatnya, jika objek diubah sebelum pemeriksaan, data yang dipaparkan akan mengandungi nilai yang dikemas kini.

Mengenalpasti Percanggahan

Chrome menyediakan isyarat visual untuk memaklumkan anda tentang perkara ini tingkah laku. "i" kecil muncul dalam kotak apabila anda menuding di atas objek, memaparkan mesej ini: "Nilai objek di sebelah kiri diambil gambar semasa dilog, nilai di bawah telah dinilai sebentar tadi."

Mengatasi Isu

Untuk mengelakkan percanggahan ini, pertimbangkan untuk mengelog harta objek individu values:

console.log(obj.foo, obj.bar, obj.baz);
Salin selepas log masuk

Sebagai alternatif, anda boleh menukar objek kepada rentetan JSON menggunakan JSON.stringify():

console.log(JSON.stringify(obj));
Salin selepas log masuk

Pendekatan lain adalah untuk mengekalkan kebolehperiksaan objek dengan semula pengekodan mereka dengan JSON.parse():

console.log(JSON.parse(JSON.stringify(obj)));
Salin selepas log masuk

Walau bagaimanapun, ambil perhatian bahawa JSON mengalih keluar yang tidak boleh bersiri sifat seperti fungsi dan elemen DOM. Untuk objek yang kompleks, gunakan mekanisme salin dalam yang teguh untuk mengekalkan sifat sedemikian.

Atas ialah kandungan terperinci Mengapa Adakah `console.log()` Menunjukkan Nilai Objek Tidak Dijangka Selepas Pengubahsuaian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan