对于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 相关文章推荐
JavaScript设置首页和收藏页面的小例子
Nov 11 Javascript
node.js中的fs.readlinkSync方法使用说明
Dec 17 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
May 12 Javascript
jquery仿苹果的时间/日期选择效果
Mar 08 Javascript
详解JavaScript对象的深浅复制
Mar 30 Javascript
微信小程序“摇一摇”的实例代码
Jul 20 Javascript
深入理解React高阶组件
Sep 28 Javascript
vue源码解析之事件机制原理
Apr 21 Javascript
详解ES6 Fetch API HTTP请求实用指南
Nov 14 Javascript
vue使用showdown并实现代码区域高亮的示例代码
Oct 17 Javascript
Vue自定义组件的四种方式示例详解
Feb 28 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
May 06 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
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
一个比较简单的PHP 分页分组类
2009/12/10 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
JavaScript定义类的几种方式总结
2014/01/06 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
python交易记录链的实现过程详解
2019/07/03 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
运动会广播稿80字
2014/01/23 职场文书
《童年》教学反思
2014/02/18 职场文书
销售内勤岗位职责
2014/04/15 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技