javascript 基础 垃圾收集
编程语言中,引用类型的数据占用内存中的空间比较大,最终都要释放这些内存以便他们能被再用。
javascript中,字符串,对象,数组没有固定大小。javascript中有垃圾收集的方法来释放。
注:不同浏览器的垃圾收集器也是不一样的,同一浏览器的不同版本垃圾收集器也可能有所不同。
例1:程序中使用的变量再也无法引用这个对象了.
var s = "hello"; var u = s.toUpperCase(); s = u; //s和u都指向了“hello”大写后的字符串
运行这段代码后,程序中没有变量再引用"hello"字符串了,系统一检测到这一事实后,就会释放该字符串的存储中间,以便该存储空间可以被再利用。
例2:分析函数中局部变量的正常声明周期
局部变量只在函数执行过程中存在,在这过程中,会为局部变量在栈(或堆)内存中分配相应空间,以便存储他们的值。
函数执行结束时,局部变量就没有存在的必要了,可以释放他们的内存供将来使用。
实现机理:
垃圾收集器必须跟踪哪个变量哪个没有用,对于不再有用的变量打上标记,以备将来收回其占用的内存。用于标识无用变量的策略因事先而异,具体到浏览器的实现,大概有两种。