对于js垃圾回收机制的理解


Posted in Javascript onSeptember 14, 2017

原理

找到不再被使用的变量,然后释放其占用的内存,但这个过程不是时时的,因为其开销比较大,

所以垃圾回收器会按照固定时间间隔周期性的执行

回收方式

a.标记清除

当变量进入环境时,将这个变量标记为“进入环境”;当变量离开环境时,则将其标记为“离开环境”。

标记“离开环境”的就回收内存

b.引入计数(低级浏览器)

当变量声明,第一次赋值时记为1,然后当这个变量值改变时,记录为0,将计数为0的回收

内存泄露

a.意外的全局变量引起的内存泄露

原因: 全局变量不会被回收

解决:使用严格模式避免

b.闭包引起的

原因: 活动对象被引用,使闭包内的变量不会被释放

解决: 将活动对象赋值为null

c.被清理的DOM元素的引用

原因: 虽然DOM被删掉了,但对象中还存在对DOM的引用

解决: 将对象赋值为null

d.被遗忘的定时器或回调

原因: 定时器内部实现闭包,回调也是闭包

解决: 清理定时器clearInterval、null

以上这篇对于js垃圾回收机制的理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js自动判断浏览器分辨率的代码
Jan 28 Javascript
Javascript 八进制转义字符(8进制)
Apr 08 Javascript
JS实现图片预加载无需等待
Dec 21 Javascript
js重写alert控件(适合学习js的新手朋友)
Aug 24 Javascript
jquery实现简单的轮换出现效果实例
Jul 23 Javascript
在javascript中使用com组件的简单实现方法
Aug 17 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
Jan 04 Javascript
微信JSAPI支付操作需要注意的细节
Jan 10 Javascript
JS实现按钮颜色切换效果
Sep 05 Javascript
EasyUI实现下拉框多选功能
Nov 07 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
Mar 22 Javascript
用node.js写一个jenkins发版脚本
May 21 Javascript
使用SVG基本操作API的实例讲解
Sep 14 #Javascript
JSON 数据格式详解
Sep 13 #Javascript
JS库 Highlightjs 添加代码行号的实现代码
Sep 13 #Javascript
详解动画插件wow.js的使用方法
Sep 13 #Javascript
JS库之Highlight.js的用法详解
Sep 13 #Javascript
详解wow.js中各种特效对应的类名
Sep 13 #Javascript
强大的JavaScript响应式图表Chartist.js的使用
Sep 13 #Javascript
You might like
PHPWind 发帖回帖Api PHP版打包下载
2010/02/08 PHP
PHP下escape解码函数的实现方法
2010/08/08 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
javascript天然的迭代器
2010/10/29 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
Python语言的面相对象编程方式初步学习
2016/03/12 Python
解读! Python在人工智能中的作用
2017/11/14 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
基于python调用psutil模块过程解析
2019/12/20 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
如何在sublime编辑器中安装python
2020/05/20 Python
Pycharm修改python路径过程图解
2020/05/22 Python
什么是python的列表推导式
2020/05/26 Python
购买原创艺术品:Zatista
2019/11/09 全球购物
正隆泰信息技术有限公司上机题
2012/06/14 面试题
青年教师典范事迹材料
2014/01/31 职场文书
《植物妈妈有办法》教学反思
2014/02/25 职场文书
简单租房协议书
2014/04/09 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
工程款申请报告
2015/05/15 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书