千家信息网

怎么理解JS中的垃圾回收

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"怎么理解JS中的垃圾回收",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么理解JS中的垃圾回收"吧!JS中的垃圾回收机制必要性,由
千家信息网最后更新 2026年11月03日怎么理解JS中的垃圾回收

这篇文章主要讲解了"怎么理解JS中的垃圾回收",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么理解JS中的垃圾回收"吧!

  JS中的垃圾回收机制必要性,由于字符串、对象和数组没有固定大小,所有当他们的大小以知时,才能对他们进行动态的存储分配。JavaScript程度每次创建字符串、数组或对象时,解释器都必须分配内存来存储那个实体。只要像这样动态地分配了内存,最终都要释放这些内存以便他们能够被再用,否则,javascript的解释器将会消耗完系统中所有可用的内存,造成系统崩溃。

  为什么需要系统JS中的垃圾回收

  JS不像C/C++,他有自己的一套垃圾回收机制。javascript的解析器可以检测到何时程序不再使用一个对象了,当他确定了一个对象是无用的时候,他就知道不再需要这个对象,可以把它所占用的内存释放掉了。

  例如:

  vara="helloworld";

  varb="world";

  vara=b;

  //这时,会释放掉"helloworld",释放内存以便再引用

  垃圾回收的方法

  标记清除

  js中最常用的垃圾收集方式是标记清楚。当变量进入环境(例如,在函数中声明一个变量)时,就将这个变量标记为"进入环境"。从逻辑上讲,永远不能释放进入环境的变量所占用的内存,因为只要执行流进入相应的环境,就可能会用到他们。而当变量离开环境时,则将其标记为"离开环境"。

  可以使用任何方式来标记变量。比如,可以通过翻转某个特殊的位来记录一个变量何时进入环境,或者使用一个"进入环境的"变量列表及一个"离开环境的"变量列表来跟踪哪个变量发生变化。

  垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记(当然,可以使用任何标记方式)。然后,它会去掉环境中的变量以及被环境中的变量引用的变量标记。而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了。最后,垃圾收集器完成内存除工作,销毁那些带标记的值并回收他们所占用的内存空间。

  引用计数(不常见)

  引用计数的含义是跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型值赋给该变量时,则这个值的引用次数就是1。如果同一个值又被赋给另一个变量,则该值的引用次数加1.相反,如果包含对这个值引用的变量又取的了另一个值,则这个值的引用次数减1.当这个值的引用次数变成0时,则说明没有办法再访问这个值了,因而就可以将其占用的内存空间收回来。这样,当垃圾收集器下次再运行时,它就会释放那些引用次数为零的值所占用的内存。

感谢各位的阅读,以上就是"怎么理解JS中的垃圾回收"的内容了,经过本文的学习后,相信大家对怎么理解JS中的垃圾回收这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

变量 垃圾 内存 环境 标记 次数 对象 方式 系统 收集器 分配 存储 学习 内容 动态 大小 字符 字符串 就是 数组 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 互联网科技名片 上海卓越科技互联网 疫情对互联网科技公司影响 互联网金融科技创新 中正互联网科技招聘 互联网科技与大数据专业 消费医药和互联网科技 中国科技创新与世界互联网大会 滨湖区互联网智能科技产品有哪些 科技互联网的核心竞争力 城市宝互联网科技有限公司 互联网科技股为什么大涨 富国互联网科技002692 上海乐五互联网科技有限公司 绵阳真晨互联网科技有限公司 科技互联网专业务虚会材料 互联网科技创业计划的风险分析 互联网科技企业文化 互联网科技快速发展优美句子 互联网和科技技术 互联网科技有限公司经营范围 奇酷互联网络科技 唐信互联网科技 大连 博兴的互联网电子科技公司 来此购互联网科技有限公司 武汉健翔互联网络科技有限公司 世界互联网科技成果奖 青岛易易互联网科技 保山浩联互联网科技有限公司
0