不管什么样的编程语言,在代码的执行过程中都是需要给他分配内存的,不同的是某些编程语言需要我们自己手动的管理内存
某些编程语言会可以自动帮助我们管理内存
手动管理内存的缺点
- 手动管理内存的语言,非常的低效,影响我们编写逻辑的代码的效率。
- 对开发者的要求也很高,并且一不小心就会产生内存泄露
内存的管理的生命周期
- 第一步:分配申请你需要的内存(申请)
- 第二步:使用分配的内存(存放一些东西,比如对象等)
- 第三步:不需要使用时,对其进行释放
JS的内存管理
在JS中主要管理的是栈内存和堆内存
栈内存:用来存储基本数据类型,相当于是一块存放临时变量的内存块
堆内存:用来存储的复杂数据类型,相当于是引用值对应的空间(有数据引用着就使用这块内存,如果该数据没有被任何得变量或者其他东西所占用,浏览器会在空闲的时候,自主进行内存回收,把所有不被占用得内存销毁掉)
JS中的垃圾回收器
因为内存的大小是有限的,所以当内存不再需要的时候,我们需要对其进行释放,以便腾出更多的内存空间。
GC算法:
- 引用计数法
- 标记清除法