Rumah > hujung hadapan web > tutorial js > Mengapakah Konsol JavaScript Chrome Hanya Menunjukkan Nilai Akhir Tatasusunan Diubah Suai?

Mengapakah Konsol JavaScript Chrome Hanya Menunjukkan Nilai Akhir Tatasusunan Diubah Suai?

Patricia Arquette
Lepaskan: 2024-12-22 09:48:43
asal
713 orang telah melayarinya

Why Does Chrome's JavaScript Console Show Only the Final Value of a Modified Array?

Konsol JavaScript Chrome Mempamerkan Penilaian Objek Tidak Dijangka

Dalam perbandingan antara konsol Firefox dan Chrome JavaScript, tingkah laku yang pelik muncul. Walaupun Firefox mencetak nilai awal dengan tepat dan pengubahsuaian susulan tatasusunan, Chrome hanya memaparkan nilai yang diubah suai untuk kedua-dua keadaan.

Masalah:

Kod berikut menggambarkan isu tersebut :

var s = ["hi"];
console.log(s);
s[0] = "bye";
console.log(s);
Salin selepas log masuk

Konsol Firefox menghasilkan yang diharapkan output:

["hi"]
["bye"]
Salin selepas log masuk

Walau bagaimanapun, konsol Chrome memaparkan:

["bye"]
["bye"]
Salin selepas log masuk

Jawapan:

Tingkah laku ini disebabkan oleh yang diketahui dan kini diperbaiki pepijat dalam Webkit: https://bugs.webkit.org/show_bug.cgi?id=35801. Ia melibatkan penilaian malas konsol terhadap objek.

Penilaian malas bermaksud konsol tidak menilai objek sehingga ia bersedia untuk memaparkan output. Ini berlaku walaupun objek telah diubah suai sebelum konsol menjadi aktif.

Penyelesaian:

Untuk mengelakkan isu ini, seseorang boleh menukar objek kepada perwakilan rentetan sebelum mengelog ia:

var s = ["hi"];
console.log(s.toString());
s[0] = "bye";
console.log(s.toString());
Salin selepas log masuk

Ini memaksa penilaian objek serta-merta, dan konsol mengeluarkan:

hi
bye
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapakah Konsol JavaScript Chrome Hanya Menunjukkan Nilai Akhir Tatasusunan Diubah Suai?. 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