对于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 相关文章推荐
addRule在firefox下的兼容写法
Nov 30 Javascript
学习YUI.Ext第五日--做拖放Darg&Drop
Mar 10 Javascript
关于JavaScript命名空间的一些心得
Jun 07 Javascript
详解JS函数重载
Dec 04 Javascript
编写简单的jQuery提示插件
Dec 21 Javascript
JQuery页面地址处理插件jqURL详解
May 03 Javascript
跟我学习javascript的prototype原型和原型链
Nov 18 Javascript
JavaScript实现点击按钮就复制当前网址
Dec 14 Javascript
Bootstrap源码解读按钮(5)
Dec 23 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
Jun 26 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
Mar 10 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
[转帖]PHP世纪万年历
2006/12/06 PHP
PHP简单系统数据添加以及数据删除模块源文件下载
2008/06/07 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
angular动态表单制作
2018/02/23 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
layui实现三级联动效果
2019/07/26 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
Python中encode()方法的使用简介
2015/05/18 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
python文件转为exe文件的方法及用法详解
2019/07/08 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
python中可以声明变量类型吗
2020/06/18 Python
python3.4中清屏的处理方法
2020/07/06 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
会计岗位职责模板
2014/03/12 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
2019 入党申请书范文
2019/07/10 职场文书
Nginx实现会话保持的两种方式
2022/03/18 Servers
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js