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
Patricia Arquetteasal
2024-12-22 09:48:43777semak imbas

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);

Konsol Firefox menghasilkan yang diharapkan output:

["hi"]
["bye"]

Walau bagaimanapun, konsol Chrome memaparkan:

["bye"]
["bye"]

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());

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

hi
bye

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!

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