比较操作符'=='表示比较对象间的值是否相等,而'is'表示比较对象的标识是否相等,即它们是否指向同一个内存地址。 比较操作符'is'效率优于'==',因为'is'操作符无法被重载,执行'is'操作只是简单的获取对象的ID,并进行比较;而'=='操作符则会递归地遍历对象的所有值,并逐一比较。 浅拷贝 ...
分类:
编程语言 时间:
2020-07-09 19:36:44
阅读次数:
72
<script> /* 1,浅拷贝只拷贝一层,更深层次对象级别的只拷贝引用 2,深拷贝拷贝多层,每一级别的数据都会拷贝 */ var obj = { id:1, name:'andy', msg: { age:18 }, color:['pink','red'] } //此处为浅拷贝 只能拷贝最外一 ...
分类:
其他好文 时间:
2020-07-08 23:10:08
阅读次数:
73
序号 方式 例子 说明 1 concat let res = arr.concat(); 连接数组返回一个新数组 2 slice let res = arr.slice(); 返回选定的元素默认从0开始到结尾 3 解构 let res = [...arr]; 创建了一个新的数组赋值为当前数组的值 4 ...
分类:
编程语言 时间:
2020-07-08 21:30:01
阅读次数:
103
一、关于Object.assgin()基本知识 概念 Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 理解 对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍 ...
分类:
其他好文 时间:
2020-07-08 15:39:18
阅读次数:
69
前言:在认识深浅拷贝的时候,先了解python中的可变类型与不可变类型。 以及 python中的传参到底是传递值还是传递引用(内存地址) python中的可变数据类型主要有 :(列表,字典) 指的是在内存地址(id)不变的情况下,可变数据类型的‘值’是可以发生改变的,如果可变类型是 +=, appe ...
分类:
编程语言 时间:
2020-07-05 17:11:11
阅读次数:
58
JS中数据类型分为两类: 基本数据类型 + 引用数据类型 1.基本数据类型 直接在栈内存中保存数据值,按值访问。 有5种:String字符串、Number数字、 Boolean布尔值、Undefined、Null 当copy数据时,copy到的是数据值本身。基本数据类型的变量与变量之间是独立存在,修 ...
分类:
其他好文 时间:
2020-07-03 21:28:27
阅读次数:
57
基本数据类型 在深入探讨深拷贝和浅拷贝之前,我们需要先了解一下Javascript得数据类型。众所周知JavaScript得数据类型,分为基本数据类型和引用数据类型。那么这两种类型到底有什么区别?接下来我们详细的谈谈。 导图: js内存 接下来我们还需要了解一个重要的知识点 js中的内存 js中的内 ...
分类:
其他好文 时间:
2020-07-03 15:19:03
阅读次数:
60
总所周知,传参 或 使用变量给另一个变量赋值时,如果是基本数据类型(null,number,undefined,string,boolean)则是直接复制,但是如果是非基本数据类型(array,function,object等),则是复制对应的引用。 浅拷贝指的是只会复制第一层对象,但是当对象是引用 ...
分类:
其他好文 时间:
2020-07-03 01:18:19
阅读次数:
85
转自https://www.cnblogs.com/echolun/p/7889848.html 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。 此篇文章中也会简单阐述到栈堆,基 ...
分类:
其他好文 时间:
2020-07-02 16:46:37
阅读次数:
43
利用展开运算符进行数组拷贝,采用的是浅拷贝,即引用的是同一个内存地址。但是当两个数组其中一个进行了变动,发生变动的节点会重新开辟出内存空间,其它未改变的节点依然引用同样的内存块。具体看如下代码示例: let a=[1,2,3]; let b=[4,5]; let c=[...a,...b]; con ...
分类:
编程语言 时间:
2020-07-01 16:05:39
阅读次数:
70