为了账号安全,请及时绑定邮箱和手机立即绑定

在js中先申明一个空数组,先打印,再push一个值,为什么打印时会有值

在js中先申明一个空数组,先打印,再push一个值,为什么打印时会有值

智慧大石 2018-08-10 17:22:31
let a=[]console.log(a)a.push(1)控制台显示是空数组,实际展开会有值,为什么会这样?
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

因为Array在js里面是 引用类型,虽然你console.log在前push在后,但是因为引用类型传址不是传值,所以你在控制台看到的数组会随着数组的后继操作而更新

查看完整回答
反对 回复 2018-08-12
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

因为你点击展开的时候,它是实时读取数据,所以你能看的到之后push的值。换个说法,就是console.log的时候只是那个时间的一个快照,所以出来是一个空数组,但是它还保持着与内存之间的联系。你点击展开的时候,浏览器实时从内存中读取到了它里面的值。不知道这样说,你能否理解?

查看完整回答
反对 回复 2018-08-12
  • 2 回答
  • 0 关注
  • 3263 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信