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

javascriptobject oriented programmingprogramming

内存周期

无论哪种编程语言,内存周期几乎相同。

内存生命周期有3个步骤

1)分配内存。

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

3)在不需要时释放分配的内存。

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

1)JavaScript中的内存分配

JavaScript被称为垃圾收集语言,即在声明变量时,它会自动为它们分配内存。当声明的变量不再有引用时,分配的内存将被释放已释放。 

示例

以下示例中,javascript 为数字、字符串和对象分配了内存。

var n = 989;      // 为数字分配内存
var s = 'qwerty'; // 为字符串分配内存

var o = {
        a: 1,
        b: null
        };        // 为对象及其所含值分配内存

2) 使用分配的值

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

3) 在不需要时释放分配的内存

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

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

Javascript 垃圾收集器使用一些算法(例如引用计数垃圾收集)来找出不再使用的内存。


相关文章