JS对象和数组在谷歌浏览器中引用存储的表现

大家都知道JS的数据分为基本类型和引用类型。具体什么不说了,今天主要说说对象和数组作为引用类型在谷歌浏览器中的表现。
首先,问题是这么发现的。我在控制台使用console打印了一个数组,然后对数组进行push内容,这时候发现原来console的内容发生了变化,顿时明白了,这不就是引用的直接体现吗?
但是我发现了谷歌浏览器对这一规则的表现有趣的地方,如果我打印的时候直接查看了该数组的内容,即我对打印的数组进行了展开操作,那么我在后面push的时候就不会变化了。有种我不能当着你的面修改数据,我要偷偷修改数据的感觉。醉了。。。
有变化的一组
1091124-20180725173245347-576084207.png
没有变化的一组
1091124-20180725173245663-431735188.png

----------------------------------
后面经过在火狐测试,同样发现了这个有趣的现象,或许这个和浏览器的设计机制有关,在没有点击的时候,console的结果是没有值只有一个预览,而点击查看是从内存或者缓存中取了值赋给了console的输出结果,然后后面不管怎么push,都不会重新赋值了。而第一只可以看到变化的原因可能就是push的生活浏览器还没有对console的输出结果进行赋值,所以后面查看的时候已经对变量push过了,得到了push之后的结果。值得注意的是,虽然变化的一组中打开的值变化了,但是预览的内容(即显示的数组长度和开头几个元素)是没有变化的,这大概也算是看到浏览器的设计机制吧。




转载于:https://www.cnblogs.com/DreamSeeker/p/9096a9932ec99cfce6d4807fe6fd7175.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值