Google Chrome console.log()與對象和數(shù)組不一致今天我正在幫助同事調(diào)試一些代碼,我注意到console.log()谷歌Chrome中有一個奇怪的行為:如果您:創(chuàng)建一個嵌套數(shù)組(例如,[[345,“test”]])使用將數(shù)組記錄到控制臺console.log()。修改其中一個內(nèi)部數(shù)組值,然后console.log()輸出后面的值 - 而不是console.log()執(zhí)行時數(shù)組的值。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"]JSFiddle示例在Firefox中不會發(fā)生此行為。另外需要注意的是,如果我在Chrome調(diào)試器中逐行瀏覽他的代碼,那么console.log()會輸出正確的值。這個奇怪的現(xiàn)象是否有解釋,還是僅僅是Google Chrome的錯誤?編輯:我已經(jīng)縮小了重現(xiàn)不一致console.log()行為的步驟:如果您將此腳本添加到您的頁面:var greetings=['hi','bye'];console.log(greetings);setTimeout(function(){
greetings.push('goodbye');},3000);并在Chrome 控制臺窗口已打開的情況下在新窗口中打開它,然后console.log()輸出將與在控制臺窗口關(guān)閉時加載頁面的輸出不同。這是一個證明這一點的JSFiddle。在第一種情況下,控制臺窗口已經(jīng)打開,console.log()將輸出數(shù)組的當(dāng)前值(即兩個項目)。在第二種情況下,控制臺窗口最初關(guān)閉并僅在頁面加載后打開,console.log()將輸出數(shù)組的后續(xù)值(即三個項目)。這是Google Chrome的console.log()功能中的錯誤嗎?
Google Chrome console.log()與對象和數(shù)組不一致
瀟湘沐
2019-08-09 09:59:21