数据处理之深浅拷贝

大家好 !!!    又到了讨论代码的欢乐时光

深浅拷贝作为面试必考的一个知识点,我们要把它按在地上摩擦

首先 , 我们要了解一个前提,

 

原始值 如 number , string,  boolean , null, undefined是存在栈内存中

引用值如  object   是存在堆内存中,

 

为什么 原始值存在栈内存中呢 ?  因为原始类型占据的空间是固定的,

把它们存在较小的内存区域 -- 栈 中, 方便迅速查询变量的值。

 

由于引用值的一些增删操作会改变引用值的大小, 所以不能把引用值放在栈

内存中,否则会降低变量的查询速度,但是引用值的地址大小是不变的,所以

引用值的地址是存在栈内存中,

 

所以直接把一个引用值赋值给一个变量, 赋的是引用值的地址

const a = { 0 : 'eat', 1 : 'run' }; const b = a; b[0] = 'change'; console.log(a[0]); // change

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyzdp.html