【EasyClick】【JavaScript】变量赋值和复制中,值传递和地址传递简介
此贴只是给小白简单介绍下,不涉及编程基础理论,有很多描述不正确地方一般来讲,我们对变量进行赋值时
let a = 1
如果我们想复制变量,通常
let b = a
在我们普通认知里,b=a以后,a不管再怎么变化,跟b就没有关系了,也就是所谓的[值传递]
但是实际程序运行时,为了节省内存空间,对复杂类型的数据,只保留了数据在内存中起始点的内存地址,也就是所谓的[地址传递]
简单类型如字符串,数字都是值传递
数组,对象等复杂类型都是地址传递
地址传递的意义在于,节省内存空间和提高效率,而当你
let a =
let b = a
此时因为a,b保存的都是内存地址,而不是实际的值,当你修改b时,a会跟着一起改变
b = 3
logd(b) // 3,2,3
logd(a) // 3,2,3
所以当你需要复制一份单独的数组或者对象时,直接用等号=是不行的
需要用到拷贝功能,而拷贝分浅拷贝和深拷贝
常用的浅拷贝
let a =
let b = JSON.parse(JSON.stringify(a))
对象也是一样的用法,可以百度了解一下
至于深拷贝,也需要百度了解更多,就不展开了
页:
[1]