javascript 基础 垃圾收集

编程语言中,引用类型的数据占用内存中的空间比较大,最终都要释放这些内存以便他们能被再用。

javascript中,字符串,对象,数组没有固定大小。javascript中有垃圾收集的方法来释放。

注:不同浏览器的垃圾收集器也是不一样的,同一浏览器的不同版本垃圾收集器也可能有所不同。

 

例1:程序中使用的变量再也无法引用这个对象了.

var s = "hello";
var u = s.toUpperCase();
s = u; //s和u都指向了“hello”大写后的字符串

运行这段代码后,程序中没有变量再引用"hello"字符串了,系统一检测到这一事实后,就会释放该字符串的存储中间,以便该存储空间可以被再利用。

例2:分析函数中局部变量的正常声明周期

局部变量只在函数执行过程中存在,在这过程中,会为局部变量在栈(或堆)内存中分配相应空间,以便存储他们的值。

函数执行结束时,局部变量就没有存在的必要了,可以释放他们的内存供将来使用。

 

实现机理:

垃圾收集器必须跟踪哪个变量哪个没有用,对于不再有用的变量打上标记,以备将来收回其占用的内存。用于标识无用变量的策略因事先而异,具体到浏览器的实现,大概有两种。

posted @ 2012-06-27 22:16  zzu-han  阅读(153)  评论(0编辑  收藏  举报