码迷,mamicode.com
首页 > 其他好文 > 详细

垃圾回收机制

时间:2019-07-19 20:37:42      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:函数   删除   dom   垃圾   优点   问题   就会   没有   不用   

变量的生命周期:

  js中有两种变量,全局变量和局部变量,局部变量在函数运行完自动删除,而全局变量在浏览器关闭时删除。

 

什么是垃圾?

  没有被引用的对象。

 

什么叫内存泄漏?

  当一块内存已经不需要了,但是它还存在,这种东西多了就会造成内存泄漏。

 

什么情况会引起内存泄漏?

  1、全局变量

    解释:局部变量在函数使用完会自动被清理,但是全局变量不会被回收,因为不知道这个全局变量你还会不会使用啊。

    解决:使用ES6的严格模式会帮我避免这个问题,还有不再使用的变量我们可以手动将它设置为null。多用局部变量,少用全局变量。

  2、闭包引起的内存泄漏

    解释:闭包的一个优点就是将函数内的私有变量保存为全局变量,并且不会被销毁。

    解决:我们要将事件处理函数放到外部定义,平时写代码注意保持良好的习惯,尽量不要函数套函数。

  3、没有清理的DOM元素引用

    解释:虽然别的地方删除了,但是对象还存在DOM的引用中。

    解决:手动删除。

  4、别遗忘的定时器或者回调

    解释:使用的定时器如果没有清除,那这个定时器就一直存在,所以在写代码的时候,要注意到清除定时器。

 

什么叫垃圾回收机制?

  每隔一段时间,去内存中找到那些不再使用的值,然后给它释放掉,一次来缓解内存的压力。

 

JavaScript的垃圾回收方式:

  1、标记清除,就是将不用的变量设置为null,这样在下一次垃圾回收器运行的时候,会带走这些被标记的变量,释放他们所占用的内存。

  2、引用计数,这个是低版本的IE使用的计数。

 

垃圾回收机制

标签:函数   删除   dom   垃圾   优点   问题   就会   没有   不用   

原文地址:https://www.cnblogs.com/wuqilang/p/11215394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!