前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【说站】javascript标记清除如何实现

【说站】javascript标记清除如何实现

作者头像
很酷的站长
发布于 2022-11-24 05:50:43
发布于 2022-11-24 05:50:43
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

javascript标记清除如何实现

标记清除是javascript中最常用的垃圾回收方法。

实现方法

1、当变量进入执行环境时,标记为进入环境。

2、从逻辑上讲,进入环境的变量占用的内存永远无法释放,因为只要执行流进入相应的环境,就有可能使用。

当变量离开环境时,它被标记为离开环境。

垃圾收集器运行时,会标记存储在内存中的所有变量。然后,它将去除环境中的变量和被环境中的变量引用的标记。之后添加标记的变量将被视为准备删除的变量,因为环境中的变量无法访问这些变量。最终。垃圾收集器完成内存清除,销毁标记值,回收占用的内存空间。

实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var m = 0,n = 19 // 把 m,n,add() 标记为进入环境。
add(m, n) // 把 a, b, c标记为进入环境。
console.log(n) // a,b,c标记为离开环境,等待垃圾回收。
function add(a, b) {
  a++
  var c = a + b
  return c
}

以上就是javascript标记清除的实现,希望对大家有所帮助。

推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【说站】JavaScript垃圾回收的两种方法
1、标记清除,这是javascript中最常用的垃圾回收方式。当变量进入执行环境时,标记该变量为进入环境。
很酷的站长
2022/11/23
2610
【说站】JavaScript垃圾回收的两种方法
javascript中的内存管理和垃圾回收
  不管什么程序语言,内存生命周期基本是一致的:首先,分配需要的内存;然后,使用分配到的内存;最后,释放其内存。而对于第三个步骤,何时释放内存及释放哪些变量的内存,则需要使用垃圾回收机制。本文将详细介绍javascript中的内存管理和垃圾回收
xing.org1^
2019/05/25
7530
【说站】JavaScript垃圾回收机制的分析
2、这一过程并非时时刻刻,因为它的成本相对较高,所以垃圾回收器会按照固定的时间间隔周期进行。
很酷的站长
2022/11/23
2940
《现代JavaScript高级教程》JavaScript引擎的垃圾回收机制
在编程语言中,内存管理是一项关键的任务,尤其对于构建大规模和性能敏感的应用程序来说尤为重要。然而,对于JavaScript这种动态语言来说,开发者通常不需要(也无法)直接管理内存,这项任务主要由JavaScript引擎来完成。
linwu
2023/07/27
3330
每天10个前端小知识 【Day 8】
函数缓存,就是将函数运算过的结果进行缓存。本质上就是用空间(缓存存储)换时间(计算过程), 常用于缓存数据计算结果和缓存对象。缓存只是一个临时的数据存储,它保存数据,以便将来对该数据的请求能够更快地得到处理。 实现函数缓存主要依靠闭包、柯里化、高阶函数,这里再简单复习下:
程序媛夏天
2024/01/18
1180
每天10个前端小知识 【Day 8】
JavaScript(四)
ECMAScript 变量可能包含两种不同数据类型的值: 基本类型值和引用类型值。 之前我们说过,ECMAScript 有5种基本数据类型: Undefined、Null、Boolean、Number 和 String,以及一个引用数据类型: Object。 注意: 在很多语言中,字符串以对象的形式来表示,因此被认为是引用类型的。ECMAScript 放弃了这一传统。
1ess
2021/10/29
3710
重学js之JavaScript 变量、作用域和内存问题
因此如果想要给一个变量赋值一个引用类型的值,那么则必须在堆内存中为这个值分配空间,由于这种值的大小不固定,因此不能把她保存到栈内存中,但是内存地址的大小是固定的,因此可以将内存地址保存在栈内存中。这样,在查询引用类型的变量时,就可以首先从栈中读取内存地址,在找到在堆内存中保存的值。这种访问方式叫做引用访问,因为我们不是操作的实际的值,而是被那个值引用的对象。
执行上下文
2022/07/26
8090
JS中的垃圾回收与内存泄漏
Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。其原理是:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。但是这个过程不是实时的,因为其开销比较大并且GC时停止响应其他操作,所以垃圾回收器会按照固定的时间间隔周期性的执行。
前端下午茶
2018/10/22
3.8K0
JS中的垃圾回收与内存泄漏
《JavaScript高级程序设计(第四版)》学习笔记(四)第4章
对于引用值而言,复制值得操作可以理解为复制了内存的引用,两个变量指向的是同样一块内存空间
小丞同学
2021/08/16
5420
夯实JS系列--变量、作用域和内存问题
在ECMAScript中,变量分为基本类型和引用类型两种。 基本类型就是存储简单的数据段。而引用类型指的是那些可能由多个值构成的对象。 在ECMAScript中,基本类型包括:Undefined、Null、Boolean、Number和String。 这些基本类型的对象都是按值访问的。所以js中我们可以直接操作他们。 但是引用类型如Object等,是按照引用来操作的。并非直接操作其值。 并且我们可以动态的为引用类型变量添加属性和方法。而基本类型则不可以。
Nealyang
2019/09/29
7400
【说站】JavaScript垃圾回收的优化方法
[]赋予数组对象是清空数组的捷径(例如arr=[]),但需要注意的是,该方式创造了新的空对象,将原来的数组对象变成了小内存垃圾。
很酷的站长
2022/11/23
3870
前端-JavaScript的内存问题
一直以来,对于Js的内存空间这部分的知识概念有些模糊,最近在回顾一些知识点的时候,特地的对js的内存这部分知识加深了一下理解,比如基本类型数据和引用类型数据在js内存中是怎么回事?什么是按值传递和按引用传递?以及对作用域和闭包的理解等等。
grain先森
2019/03/29
1.1K0
前端-JavaScript的内存问题
深入理解js内存机制
js的内存机制在很多前端开发者看来并不是那么重要,但是如果你想深入学习js,并将它利用好,打造高质量高性能的前端应用,就必须要了解js的内存机制。对于内存机制理解了以后,一些基本的问题比如最基本的引用数据类型和引用传递到底是怎么回事儿?比如浅复制与深复制有什么不同?还有闭包,原型等等就迎刃而解了。
OECOM
2020/07/02
1.1K0
深入理解js内存机制
JavaScript的内存管理
如果我们有内存溢出,程序占用的内存会越来越大,最终引起客户端卡顿,甚至无响应。如果我们使用Node.js做后端应用,因为后端程序会长时间运行,如果有内存溢出,造成的后果会更严重,服务器内存可能会很快就消耗光,应用不能正常运行。
蒋鹏飞
2020/10/15
7230
JavaScript的内存管理
JavaScript 的内存泄露和垃圾回收
即跟踪记录每个值被引用的次数,当声明了一个变量并将一个引用类型赋值给该变量时,则这个值的引用次数就是1; 相反,如果包含对这个值引用的变量又取得了另外一个值,那么这个值的引用次数就减1;当引用次数变为0的时候,则说明没有办法再访问到这个值了,所以,就可以把其所占用的内存空间给收回来。 这样,垃圾收集器下次再运行时,他就会释放哪些引用次数为0的值所占的内存。
西南_张家辉
2021/02/02
3280
javascript垃圾收集机制与内存泄漏详解
javascript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中的使用的内存。而在C和C++之类的语言中,开发人员的一项基本任务就是手动跟踪内存的使用情况,这是造成许多问题的一个根源。在编写javascript程序时候,开发人员不用再关心内存使用的问题,所需内存的分配以及无用的回收完全实现了自动管理。这种垃圾收集机制的原理其实很简单:找出那些不再继续使用的变量,然后释放其中占用的内存。为此,垃圾收集器会按照固定的时间间隔(或代码执行中预设的收集时间),周期性的执行这一操作。 下面我们来
前朝楚水
2018/04/02
1K0
JS 垃圾回收机制
1、自动垃圾回收机制就是找出那些不再继续使用的值,然后释放其占用的内存空间。垃圾回收器每隔固定的时间段就执行一次释放操作。
grain先森
2019/03/29
2.8K0
JavaScript垃圾收集
在很多语言中,开发人员的一项基本任务就是手动跟踪内存的使用情况,这是造成许多问题的根源。而 JavaScript具有垃圾收集机制,执行环境会负责管理代码执行过程中使用的内存。因此在编写 JavaScript 程序时,开发人员不用在关心内存使用问题。
流眸
2021/04/08
5290
JavaScript 垃圾回收
JavaScript 具有自动垃圾回收机制,这种垃圾回收机制原理其实很简单:找出那些不再继续使用的变量,然后释放其所占用的内存,垃圾回收器会按照固定的时间间隔周期性地执行这一操作。局部变量只有在函数执行的过程中存在,在这个过程中,会为局部变量在栈(或者堆)内存上分配空间,然后在函数中使用这些变量,直至函数执行结束。垃圾回收器必须追踪哪个变量有用哪个没用,对于不再有用的变量打上标记,以备将来回收其占用的内存,用于标识无用变量的策略主要有标记清除法和引用计数法。
李振
2021/11/26
6000
JavaScript 垃圾回收
JavaScript 内存管理 & 垃圾回收机制
低级语言,比如C,有低级的内存管理基元,像 malloc(),free()。另一方面,JavaScript 的内存基元在变量(对象,字符串等等)创建时分配,然后在他们不再被使用时“自动释放”。后者被称为垃圾回收。这个“自动”是混淆并给 JavaScript (和其他高级语言)开发者一个错觉:他们可以不用考虑内存管理。
零式的天空
2022/03/22
5060
相关推荐
【说站】JavaScript垃圾回收的两种方法
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文