Rumah > Artikel > hujung hadapan web > Adakah Console.log() Mengeluarkan Objek dan Tatasusunan dengan Betul dalam Google Chrome?
Console.log() Ketidakkonsistenan dengan Objek dan Tatasusunan dalam Google Chrome
Console.log(), alat penyahpepijatan dalam Google Chrome, mempamerkan tingkah laku pelik apabila digunakan dengan objek dan tatasusunan. Anomali ini nyata apabila:
<code class="javascript">var test = [[2345235345,"test"]] console.log(test); test[0][0] = 1111111; // outputs: [[1111111,"test"]] var testb = {}; testb.test = "test"; console.log(testb); testb.test = "sdfgsdfg"; // outputs: {"testb":"test"} var testc = ["test","test2"]; console.log(testc); testc[0] = "sdxfsdf"; // outputs: ["test","test2"]</code>
Menariknya, tingkah laku ini adalah eksklusif untuk Chrome; Firefox tidak mempamerkannya. Selain itu, jika kod itu dilangkah melalui baris demi baris dalam penyahpepijat Chrome, console.log() memaparkan nilai yang betul.
Asal usul Fenomena
Siasatan lanjut mendedahkan bahawa ini adalah pepijat yang diketahui yang telah diselesaikan dalam Webkit tetapi belum dimasukkan ke dalam Google Chrome. Pepijat itu pada mulanya dilaporkan pada Mac 2010 (https://bugs.webkit.org/show_bug.cgi?id=35801), dan pembetulan telah dilaksanakan pada Ogos 2012. Walau bagaimanapun, ia masih belum masuk ke Chrome.
Kesan Keadaan Konsol
Kelakuan console.log() dipengaruhi oleh keadaan tetingkap konsol. Jika tetingkap konsol dibuka pada masa skrip dimuatkan, console.log() akan memaparkan nilai semasa tatasusunan dan objek. Walau bagaimanapun, jika tetingkap konsol ditutup dan dibuka selepas skrip dimuatkan, console.log() akan memaparkan nilai yang diubah suai, walaupun ia ditukar selepas pelaksanaan console.log().
<code class="javascript">var greetings=['hi','bye']; console.log(greetings); setTimeout(function(){ greetings.push('goodbye'); },3000);</code>
Jika skrip di atas dilaksanakan dengan tetingkap konsol sudah terbuka, console.log() akan memaparkan dua item. Jika tetingkap konsol ditutup dan dibuka semula selepas halaman dimuatkan, console.log() akan memaparkan tiga item, mencerminkan keadaan tatasusunan yang diubah suai.
Keanehan ini mencadangkan kemungkinan pepijat dalam kefungsian console.log() Google Chrome , yang masih belum dibetulkan dalam versi semasa Chrome.
Atas ialah kandungan terperinci Adakah Console.log() Mengeluarkan Objek dan Tatasusunan dengan Betul dalam Google Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!