美文网首页
js的内存管理机制

js的内存管理机制

作者: sun_hl | 来源:发表于2021-08-18 14:56 被阅读0次
    什么是内存管理

    所谓内存管理,是 js 从创建变量到垃圾回收的一个过程。

    它的生命周期
    • 分配你所需要的内存(变量声明的时候)
    • 使用分配的内存(读,写)
    • 不需要的时候回收(或者释放)内存
    js 的内存空间

    分三种:
    栈:存放变量,包括基础数据类型的变量及对象的指针
    堆:存放引用数据类型的值
    池:一般也归类为栈,保存常量

    垃圾回收的原理

    找出那些不再继续使用的变量,然后释放其占用的内存。

    浏览器的垃圾回收策略
    • 标记清除
    • 引用计数算法
      具体详见下篇文章
    什么是内存泄漏?

    不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)

    js 中哪些操作会引发内存泄漏:
    • 全局变量引起的内存泄露(例如没有使用 var, let, const 定义的变量)
      解决方式: 在js文件开头添加 ‘use strict',开启严格模式。(或者一般将使用过后的全局变量设置为 null 或者将它重新赋值。

    • 用完的定时器没有清除
      解决方式:当不需要interval或者timeout的时候,调用clearInterval或者clearTimeout

    • 闭包引起的内存泄露:慎用闭包

    • dom清空或删除时,事件未清除导致的内存泄漏

    • 循环引用带来的内存泄露(例如没有结束条件的递归,循环引用的对象)

    相关文章

      网友评论

          本文标题:js的内存管理机制

          本文链接:https://www.haomeiwen.com/subject/jihgbltx.html