首頁  >  文章  >  web前端  >  為什麼 Console.log() 在 Chrome 中顯示修改後的值而不是原始值?

為什麼 Console.log() 在 Chrome 中顯示修改後的值而不是原始值?

Patricia Arquette
Patricia Arquette原創
2024-10-20 12:34:02381瀏覽

Why Does Console.log() Display Modified Values Instead of Original Values in Chrome?

Console.log() 在Chrome 中記錄物件和陣列時出現不一致

在Google Chrome 中,使用console.log( 時會出現意外行為) 來記錄巢狀陣列或物件。如果在記錄後修改陣列或物件的最裡面的值,console.log() 將顯示修改後的值,而不是記錄時的原始值。

重現步驟

重現問題:

  1. 建立嵌套數組,例如[[345, "test"]] 。
  2. 將陣列記錄到控制台使用 console.log().
  3. 修改內部陣列值,例如 test0 = 1111111。
  4. Console.log() 現在將輸出[[1111111, "test"]].

這種不一致也會影響儲存在變數(testb、testc)中的對象和數組。

潛在問題

經過廣泛研究,這是發現此問題之前被報告為WebKit 中的錯誤(https://bugs.webkit.org/show_bug. cgi?id=35801)。 Chromium 開發人員承認了這個問題,但表示由於技術限制,不太可能修復。

修復和不一致

但是,2012 年在 WebKit 中實現了修復。儘管如此,谷歌瀏覽器尚未採用該修復程序。因此,console.log() 的行為會根據日誌記錄時控制台視窗是否開啟而有所不同。

  • 控制台視窗開啟: Console.log() 將顯示目前值,即使它們已變更。
  • 控制台視窗最初關閉: Console.log() 將顯示記錄時的值。

結論

Google Chrome 的 console.log() 功能中的此錯誤仍然存在並影響偵錯工作。建議注意這種不一致並考慮替代調試方法,直到問題在 Chrome 中解決。

以上是為什麼 Console.log() 在 Chrome 中顯示修改後的值而不是原始值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn