美文网首页js css htmlweb前端
JS垃圾回收机制-引用计数

JS垃圾回收机制-引用计数

作者: 姜治宇 | 来源:发表于2022-04-12 15:39 被阅读0次

js的垃圾回收,最常使用的方法是引用计数。
只要有引用堆内存的地方,引用计数就要加1。如果一个值的引用次数是0,就表示这个值不再用到了,因此可以将这块内存释放。

var a = [1,2];
var b = a;
a = null;
console.log(b);

第一行,[1,2]这个数组开辟了一块内存,变量a对其引用了,所以引用计数为1。
第二行,变量b也引用了这个数组,引用计数为2。
第三行,a变量回收,引用计数为1。
第四行,因为引用计数不为0,因此[1,2]未被释放,还可以打印出来。
但是weakset和weakmap就比较特殊:

const wm = new WeakMap();
const element = document.getElementById('example');
wm.set(element, 'some information');
element = null;

第二行,变量element指向了dom节点,引用计数为1;
第三行,weakmap也对dom节点进行了引用,但这个是弱引用,不计入引用计数,因此引用计数还是1;
最后一行,当变量element回收后,引用计数为0,dom节点也被释放了。

相关文章

  • Chrome-垃圾回收

    垃圾回收机制 在Chrome存在垃圾回收机制,用于回收内存。 引用计数 引用计数就是跟踪记录每个值被引用的次数,当...

  • python面试题(五)

    1、简述python引用计数机制(联想到垃圾回收机制)python垃圾回收主要以引用计数为主,标记-清除和分代清除...

  • Python垃圾回收机制

    垃圾回收机制: Python中的垃圾回收算法是采用引用计数, 当一个对象的引用计数为0时, Python的垃圾回收...

  • python垃圾回收机制

    python的垃圾回收机制: 主要是引用计数为主,分代回收为辅。 一、引用计数 引用计数的原理: // objec...

  • Python 垃圾回收学习

    垃圾回收机制一般有两个阶段:垃圾检测和垃圾回收。Python GC 主要使用引用计数来跟踪和垃圾回收。在引用计数的...

  • Day11-Python垃圾回收机制笔记

    Python中的垃圾回收是以引用计数为主,标记清除和分代回收为辅。 【引用计数】 Python默认的垃圾收集机制是...

  • js垃圾回收机制

    我们都知道,JS是自动进行垃圾回收,回收算法有两种:标记清除和引用计数 标记清除程序在运行的时候,垃圾回收机制会被...

  • [JS]生命周期,作用域和垃圾回收机制

    垃圾回收机制 JS中垃圾回收机制中有两种方式:标记清除和引用计数 标记清除在函数中生命一个变量,将该变量标记为"进...

  • python学习一

    1 python 如何管理内存 对象引用计数机制,垃圾回收机制,内存池机制 一。对象引用机制 python内部引用...

  • 常见垃圾回收算法

    什么是垃圾回收(GC) 垃圾回收机制是一种找到内存中的垃圾将其释放并回收空间的机制 常见的垃圾回收算法 引用计数法...

网友评论

    本文标题:JS垃圾回收机制-引用计数

    本文链接:https://www.haomeiwen.com/subject/hhcnsrtx.html