Rumah >hujung hadapan web >tutorial js >Mengapakah Konsol JavaScript Chrome Menunjukkan Nilai Objek Tidak Konsisten Berbanding dengan Firefox?
Konsol JavaScript Chrome: Enigma Penilaian Objek Lazy
Dalam bidang alat penyahpepijatan, konsol JavaScript ialah aset yang tidak ternilai. Walau bagaimanapun, pengguna mengalami ketidakkonsistenan antara Chrome dan Firefox semasa mengelog objek.
Isunya
Pertimbangkan kod ini:
var s = ["hi"]; console.log(s); s[0] = "bye"; console.log(s);
Dalam Firefox, konsol mencatatkan tatasusunan dengan tepat sebagai:
[ "hi" ] [ "bye" ]
Walau bagaimanapun, konsol JavaScript Chrome (versi 7.0.517.41 beta) secara tidak jelas merekodkan kedua-dua pernyataan sebagai:
[ "bye" ] [ "bye" ]
Pepijat atau Penilaian Malas?
Timbul persoalan, adakah ini pepijat atau keanehan konsol Chrome?
Menyiasat Pepijat
Setelah mencari, pepijat Webkit sedia ada yang belum disahkan ditemui (https://bugs.webkit.org/show_bug.cgi?id=35801) yang menerangkan isu tepat ini.
Membahaskan Keterukan
Keterukan pepijat adalah soal perbahasan. Sesetengah berpendapat bahawa ia merupakan pepijat tulen, manakala yang lain berpendapat bahawa ia berada dalam julat yang boleh diterima.
Mengelakkan Isu
Walaupun terdapat perdebatan, terdapat penyelesaian mudah untuk elakkan tingkah laku ini dalam kod anda:
var s = ["hi"]; console.log(s.toString()); s[0] = "bye"; console.log(s.toString());
Dengan menukar objek kepada perwakilan rentetan (melalui toString), anda mencipta imej statik dengan berkesan yang tidak akan terjejas oleh pengubahsuaian berikutnya. Konsol kemudian akan mengeluarkan gambar ini:
hi bye
Atas ialah kandungan terperinci Mengapakah Konsol JavaScript Chrome Menunjukkan Nilai Objek Tidak Konsisten Berbanding dengan Firefox?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!