深浅拷贝 s = [1,'1230'] s2 = s #两个变量指向同一片内存 浅copy--只拷贝第一层 深copy--全部拷贝 ...
分类:
编程语言 时间:
2018-10-11 18:52:16
阅读次数:
188
序言 最近遇到几个js引用数据类型造成的bug,今天结合bug详细分析一下,避免以后再犯,也希望能帮大家提个醒,强化js基本功。 目录 1、浅拷贝、深拷贝,解决变量赋值相互影响问题 2、判断2个数组、对象是否相等 现象一 1. 现象分析: 1. 现象分析: 因为 数组、对象是引用数据类型,变量存储的 ...
分类:
编程语言 时间:
2018-10-10 17:09:21
阅读次数:
219
深浅拷贝 一、浅拷贝 只拷贝第一层数据(不可变的数据类型),并创建新的内存空间进行储蓄,例如:字符串、整型、布尔 除了字符串以及整型,复杂的数据类型都使用一个共享的内存空间,例如:列表 列表使用的是同一个内存地址,指向原拷贝的值,即使用的是原本的内存空间 二、深拷贝 两份数据拥有相互独立的内存,没有 ...
分类:
编程语言 时间:
2018-10-08 14:00:29
阅读次数:
138
创建字典:info = { “age”: 18, “name”: “zhangsan”, “li”: [ 11,[],(),22,33,{“k1” : “vv1”, “sex” : 0} ] , } (1)字典的keys可以是数字、字符串、元组,keys不能重复,否则第二个以后的key无法显示 (2 ...
分类:
其他好文 时间:
2018-10-07 19:24:35
阅读次数:
170
/* 1、值传递 2、引用传递*/ var a = 10;var b = a;b++;//console.log(a,b)//a:10 b:11 var arr = [10,20,30,40];var arr1 = arr;arr1[0] = 40;//console.log(arr,arr1);/ ...
分类:
其他好文 时间:
2018-10-07 19:01:03
阅读次数:
155
--理解深拷贝与浅拷贝,必须要理解值传递与引用传递的概念、 --浅拷贝及其实现的方式 --深拷贝及其实现的方式 ...
分类:
其他好文 时间:
2018-10-06 00:34:53
阅读次数:
169
不可变对象为字符串,元组等 可变对象为列表,字典,集合等。 浅拷贝只是对已经存在的内存新增加一个对象引用。, 深拷贝就是重新申请一个新的内存,使这个是新对象是新内存地址的引用。 对于可变对象引用时时经常出现。 考虑以下两段代码: 代码1 代码2 结论: 代码1中l.append中新添加的对象为新创建 ...
分类:
其他好文 时间:
2018-10-05 17:22:55
阅读次数:
130
一、迭代器 对于Python 列表的 for 循环,他的内部原理:查看下一个元素是否存在,如果存在,则取出,如果不存在,则报异常 StopIteration。(python内部对异常已处理) 二、生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一 ...
分类:
其他好文 时间:
2018-10-05 17:15:59
阅读次数:
192
首先深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对象的地址是否和原对象一样,也就是地址的复制还是值的复制的区别。 深拷贝和浅拷贝需要注意的地方是可变元素的拷贝,在浅拷贝时:拷贝出来的新对象的地址和原对象是不一样的,但是新对象里面的可变元素(如列表)的地址和原 ...
分类:
编程语言 时间:
2018-10-04 16:37:10
阅读次数:
231
1. https://www.cnblogs.com/BlueTzar/articles/1223313.html 以上博客讲了深拷贝和浅拷贝的区别,即: 在某些状况下,类内成员变量需要动态开辟堆内存,这时实行拷贝 B=A; A的成员指针变量有指向内存,这时复制构造函数会将B的也指向同一块内存,A销 ...
分类:
编程语言 时间:
2018-10-02 00:21:44
阅读次数:
199