前端面试题

JS 堆栈

2018-09-06  本文已影响0人  田帅奇

堆是堆内存的简称,栈是栈内存的简称。

堆是动态分配内存,内存大小不一,也不会自动释放。栈是自动分配相对固定大小的内存空间,并由系统自动释放.

JS的数据类型

以代码为例:

let arr_origin = [1,2,3,4,5];
let arr_copy = arr_origin;
let arr2 = arr_origin[2];

如果执行下面代码:

arr_copy[1] = 'change1';
arr2 = ‘change2’

我们发现arr_origin中的下标是1的值变成可change1,但是下标是2的值并未变化。原因是:arr_copy是arr_origin栈指针的引用,并未开辟新的内存空间,但是arr2是在栈内存中独立存在,所以会产生上述结果。熟悉此原理,则数据的深浅拷贝就不难理解了!

上一篇 下一篇

猜你喜欢

热点阅读