详细解释 JavaScript 的内存生命周期?


内存周期

无论编程语言是什么,任何编程语言的内存周期几乎都相同。

 内存生命周期包含 3 个步骤

1) 内存分配。

2) 使用已分配的内存(读取或写入)

3) 当内存不再需要时释放已分配的内存。

在低级语言中,第一部分和最后一部分是直接关联的,但在高级语言(如 JavaScript)中是间接关联的。

1) JavaScript 中的内存分配

JavaScript 被称为垃圾回收语言,也就是说,当声明变量时,它会自动为它们分配内存。当没有更多引用声明的变量时,分配的内存将被释放。

示例

在下面的示例中,javascript 为一个数字、一个字符串和一个对象分配了内存。

var n = 989;      // allocates memory for a number
var s = 'qwerty'; // allocates memory for a string

var o = {
        a: 1,
        b: null
        };        // allocates memory for an object and contained values

2) 使用已分配的值

使用值基本上意味着读取和写入分配的内存。这可以通过读取或写入变量或对象属性的值,甚至将参数传递给函数来完成。

3) 当内存不再需要时释放已分配的内存

大多数内存管理问题都出现在此阶段。这里艰巨的任务是确定何时不再需要分配的内存。为了解决此问题,大多数高级语言都嵌入了一段称为垃圾回收器的软件。

垃圾回收器的任务是跟踪内存分配并找出何时不再需要分配的内存,以便释放它。不幸的是,此过程只是一个估计,因为知道某个内存块是否需要的通用问题是不可判定的。(算法无法跟踪)

Javascript 垃圾回收器使用一些算法,例如引用计数垃圾回收,来确定不再使用的内存。 

更新于: 2019年7月30日

311 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告