猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
在js中先申明一个空数组,先打印,再push一个值,为什么打印时会有值
let a=[]
console.log(a)
a.push(1)
控制台显示是空数组,
实际展开会有值,为什么会这样?
智慧大石
浏览 3264
回答 2
2回答
千巷猫影
因为Array在js里面是 引用类型,虽然你console.log在前push在后,但是因为引用类型是传址不是传值,所以你在控制台看到的数组会随着数组的后继操作而更新
0
0
0
慕田峪7331174
因为你点击展开的时候,它是实时读取数据,所以你能看的到之后push的值。换个说法,就是console.log的时候只是那个时间的一个快照,所以出来是一个空数组,但是它还保持着与内存之间的联系。你点击展开的时候,浏览器实时从内存中读取到了它里面的值。不知道这样说,你能否理解?
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
JavaScript
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续