zoukankan      html  css  js  c++  java
  • js垃圾回收机制

    1.概述

     js的垃圾回收机制是为了防止内存泄漏(已经不需要的某一块内存还一直存在着),垃圾回收机制就是不停歇的寻找这些不再使用的变量,并且释放掉它所指向的内存。

    在JS中,JS的执行环境会负责管理代码执行过程中使用的内存。

    2.变量的生命周期

     当一个变量的生命周期结束之后,它所指向的内存就会被释放。。。js有两种变量,局部变量和全局变量,局部变量是在他当前的函数中产生作用,当该函数结束之后,该变量内存会被释放,全局变量的话会一直存在,直到浏览器关闭为止。

    3.js垃圾回收方式

     有两种方式: 标记清除、引用计数

     标记清除:大部分浏览器使用这种垃圾回收,当变量进入执行环境(声明变量)的时候,垃圾回收器将该变量进行了标记,当该变量离开环境的时候,将其再度标记,随之进行删除。

     引用计数:这种方式常常会引起内存的泄露,主要存在于低版本的浏览器。它的机制就是跟踪某一个值得引用次数,当声明一个变量并且将一个引用类型赋值给变量得时候引用次数加1,当这个变量指向其他一个时引用次数减1,当为0时出发回收机制进行回收。

    这种方法不能解决循环引用的情况,

    function sample(){
        var a={};
        var b={};
        a.prop = b;
        b.prop = a;
    }

    这种情况下每次调用sample()函数的时候a和b都被引用了两次,每次减少1  所以永远不会成为0,即永远不会被垃圾回收机制回收释放,造成内存的泄露。

  • 相关阅读:
    学习 JS 内容知识点与个人感悟【2】
    学习两天hml的感悟
    编程一星期感悟(上)
    java基础及练习题
    java基础程序代码及Scanner和Random
    java中Random和Scanner及其循环语句
    java语言及数据类型
    SQL含义+单行函数
    DTL+数据字典+序列、索引、视图
    sql plus及SQL语句
  • 原文地址:https://www.cnblogs.com/zzgyq/p/11175031.html
Copyright © 2011-2022 走看看