前言
这是关于How JavaScript works
第三章的总结。原文地址戳这里
概述
JS的会自动地分配和清理内存(垃圾回收机制)。但这并不意味这我们不需要关心内存的管理。
什么是内存
计算机的内存由大量的触发器组成,而每个触发器又包含了许多的晶体管,其中每个触发器可以储存1比特(bit)并被唯一的标识符所标识(address)-通过这个标识符我们可以找到这个触发器并读取或者重写其数据。
所以我们可以认为计算机的内存就是巨大的以bit为元素的数组。我们可以对它进行读(read)和写(write)操作。
内存的生命周期
- Allocate memory(分配内存): 通过操作系统分配内存,从而你的程序可以使用这些内存
- Use memory(使用内存): 对分配到的内存进行读和写操作
- Release memory(释放内存): 释放不再使用的内存,以便之后使用
JS中的内存管理
在JS中内存的分配、释放都是自动的。
在声明变量时分配内存,在进行读写操作时使用内存,当内存不需要再使用时释放内存。
但是难点在于如何确定何时这些内存是不在会被使用的,然后释放它,以便之后使用。
JS释放内存的机制
JS的是通过垃圾回收算法来释放内存的主要有以下两种:
- 引用计数
- 标记清除
原文记录得很详细这里就不细讲了。