繁体   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