大家好 !!! 又到了讨论代码的欢乐时光
深浅拷贝作为面试必考的一个知识点,我们要把它按在地上摩擦
首先 , 我们要了解一个前提,
原始值 如 number , string, boolean , null, undefined是存在栈内存中
引用值如 object 是存在堆内存中,
为什么 原始值存在栈内存中呢 ? 因为原始类型占据的空间是固定的,
把它们存在较小的内存区域 -- 栈 中, 方便迅速查询变量的值。
由于引用值的一些增删操作会改变引用值的大小, 所以不能把引用值放在栈
内存中,否则会降低变量的查询速度,但是引用值的地址大小是不变的,所以
引用值的地址是存在栈内存中,
所以直接把一个引用值赋值给一个变量, 赋的是引用值的地址
const a = { 0 : 'eat', 1 : 'run' }; const b = a; b[0] = 'change'; console.log(a[0]); // change