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

有变化的一组
没有变化的一组

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

JS对象和数组在谷歌浏览器中引用存储的表现的更多相关文章

  1. JS对象和数组深浅拷贝总结②

    在实际开发中遇到过太多次深拷贝浅拷贝的问题.总结一下~ JS数据存储和深浅拷贝实际运用① 这是之前写过的一篇文章,解决浅拷贝深拷贝的问题只说了一种方法,今天来补充一下. 介绍深拷贝和浅拷贝都在上一篇文 ...

  2. js 对象,数组,字符串,相互转换

    1:对象转换数组 let obj = {'val1':1, 'val2':2, 'val3':3, 'val4':4}; var arr = [] for (let i in obj) { //取键 ...

  3. C# 数组在内存中的存储

    C# 数组是引用类型,那么在内存中是如何存储的呢? 在VS中调试C#程序,如何查看内存.寄存器.反汇编 在这篇文章里看到了如何在VS 中查看内存 先断点打在数组创建后语句那里,点debug->W ...

  4. JS对象 颠倒数组元素顺序reverse() reverse() 方法用于颠倒数组中元素的顺序。

    颠倒数组元素顺序reverse() reverse() 方法用于颠倒数组中元素的顺序. 语法: arrayObject.reverse() 注意:该方法会改变原来的数组,而不会创建新的数组. 定义数组 ...

  5. JS对象 Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的

    Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个"下标",用来表示它在数组中的位置,是从零开始的 数组定义的方法: 1. 定 ...

  6. JS对象和数组

    /* 数组和对象 [JavaScript 权威指南 第五版] */ /* 对象: 是一个无序属性集合, 每个属性都有自己的名字和值 */ /* 创建对象简单方法, 对象直接量 */ var obj = ...

  7. 【转】潜说js对象和数组

    /* 数组和对象 [JavaScript 权威指南 第五版] */ /* 对象: 是一个无序属性集合, 每个属性都有自己的名字和值 */ /* 创建对象简单方法, 对象直接量 */ var obj = ...

  8. 检测js对象是不是数组类型?

    面试时候被人问如何检测一个未知变量是不是数组类型,丢脸啊,老祖宗的脸都丢没了,这都不会,回家啃书本去吧!!! var a = [];方法一:Array.isArray([])  //true type ...

  9. js对象跟数组多层嵌套,检测没有此数据就添加有则不添加以及超过限制条件删除操作

    例如你需要这样格式的数据: [{"name":"合肥市","arrey":[{"lat":"31.862323 ...

随机推荐

  1. PHP正则表达式实例汇总

    $str = preg_replace("/(<a.*?>)(.*?)(<\/a>)/", '\1<span class="link&quo ...

  2. Python基础 数据类型 (字符串、列表、字典、元组、集合、堆、栈、树)

    数据类型有整型.布尔.字符串.列表.字典.元组.集合.堆.栈和树. 1.整型: 整型就是数字 数字表示 python2 64位机器,范围-2^63~2^63-1 超出上述范围,python自动转化为l ...

  3. 关于window的端口查看及tomcat的端口修改问题

    1.Windows平台 在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\>netstat -ano 协议    本地地址                     外部地址  ...

  4. Eclipse SWT

    Reference: http://www.eclipse.org/swt/ http://www.functionx.com/win32/Lesson01.htm http://www.win32d ...

  5. 使用CKRule实现促销管理系统

    1, 常见的促销模型 促销管理系统在很多地方都有使用,大家去超市就经常体现到,感受到,不少中小型单位都其促销活动,要搞促销活动最好是有应用软件支持,这样就比较灵活管理也方便.而依靠手工处理的话效率会比 ...

  6. 基本类型int强转short时发生了什么?

    我们知道java中一个int类型占32bits(4字节),一个short占16bits(2字节)强制转换时只取低16位(short类型占的那16位),高16位(去掉低位多出来的那部分)属于溢出不计算, ...

  7. mvc4站点支持.html

    MVc站点在配置通配符后,还需要配置这个才能支持.html.在自定义的路由中加入.自定义代码就可以支持子定义的html了.

  8. SQL Server ->> 重命名数据库

    ALTER DATABASE [oldDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO ALTER DATABASE [oldDB] MODIFY NAME ...

  9. Struts的学习-配置

    1.进入官网http://struts.apache.org/download.cgi#struts2513,这里为下载地址,(ps:struts-2.5.13-all版本). 2.将..\strut ...

  10. pl/sql中的一种链接数据库方式

    今天看开发人员如此连接数据库: