簡體   English   中英

當我嘗試通過索引訪問數組元素時,它給了我未定義的

[英]when i try to access array element by index it gives me undefined

我創建了一個array並通過array.push()插入元素。 當我使用console.log(array)時,它給了我console.log(array) 的輸出輸出

當我console.log(array[0])它給了我未定義的。 為什么正在發生,並且圖片中出現藍色 i 標記,上面寫着“這個值是在第一次擴展時評估的,它可能從那時起在數組 javascript 中發生了變化”這是什么意思。 請幫我理解問題

當您console.log一個對象(包括數組)時,它不會被序列化,只有一個引用被傳遞給控制台。 展開它時,此引用用於檢查此對象的狀態。

最有可能發生的事情是以下順序:

  1. console.log(array) // passes array reference to a console
  2. console.log(array[0]) // prints undefined immediately
  3. array.push(...) // an actual array modification
  4. 您展開對象,控制台檢查數組的內容

PS。

有理由問,如果引用由於任何原因變得無效,會發生什么。

對於瀏覽器 - 更簡單,因為控制台和 JS 程序運行在同一個父進程下,瀏覽器負責一切。

但是,如果您嘗試調試具有相同 API 傳遞引用的 Node 進程,您將面臨各種奇怪的問題,例如: No debug adapter, can not send 'variables VSCODE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM