Rumah >hujung hadapan web >tutorial js >Mengapa Adakah `console.log` Saya Menunjukkan Panjang Tatasusunan dan Nilai Objek yang Berbeza Selepas Penyambungan?

Mengapa Adakah `console.log` Saya Menunjukkan Panjang Tatasusunan dan Nilai Objek yang Berbeza Selepas Penyambungan?

DDD
DDDasal
2024-12-24 02:24:11750semak imbas

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

Gelagat Pelik dengan Objek & Console.log

Kod yang disediakan mempamerkan output yang pelik dalam Chrome Console. Mengapakah tatasusunan lima objek dipaparkan sebelum dan selepas mencantumkan elemen, dengan panjang menunjukkan nilai yang berbeza?

Penjelasan:

Console.log merawat pemeriksaan objek secara tidak segerak . Walaupun konsol menerima rujukan kepada objek serta-merta, ia tidak menunjukkan sifatnya sehingga dikembangkan. Jika objek diubah suai sebelum pengembangan, data yang dipaparkan mencerminkan nilai yang dikemas kini.

Gelagat Konsol Chrome:

Konsol Chrome menunjukkan gelagat ini dengan "i" dalam kotak, berlegar di atasnya yang mendedahkan mesej berikut: "Nilai objek di sebelah kiri diambil gambar semasa dilog, nilai di bawah dinilai hanya sekarang."

Mengatasi Isu:

Untuk mengurangkan isu ini, pertimbangkan strategi berikut:

  • Log nilai individu: konsol. log(obj.foo, obj.bar, obj.baz);
  • JSON mengekod objek: console.log(JSON.stringify(obj));
  • Ekod semula JSON: console.log(JSON.parse(JSON.stringify(obj)));

Ambil perhatian bahawa JSON mengalih keluar sifat tidak boleh bersiri seperti fungsi dan elemen DOM dan mungkin gagal pada rujukan bulat. Oleh itu, adalah disyorkan untuk menggunakan varian salinan dalam yang pintar untuk objek sedemikian.

Atas ialah kandungan terperinci Mengapa Adakah `console.log` Saya Menunjukkan Panjang Tatasusunan dan Nilai Objek yang Berbeza Selepas Penyambungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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