专栏名称: 前端大全
分享 Web 前端相关的技术文章、工具资源、精选课程、热点资讯
目录
相关文章推荐
程序员好物馆  ·  别再给所有函数起名叫 ... ·  6 小时前  
程序员好物馆  ·  别再给所有函数起名叫 ... ·  6 小时前  
前端早读课  ·  【第3521期】如何在 React 中构建一个库 ·  7 小时前  
前端早读课  ·  【第3520期】Slack、Notion ... ·  昨天  
前端早读课  ·  【图书】MCP原理与实战:高效AI ... ·  昨天  
脚本之家  ·  大厂都在用的 12 大主流 AI ... ·  昨天  
脚本之家  ·  大厂都在用的 12 大主流 AI ... ·  昨天  
51好读  ›  专栏  ›  前端大全

前端内存泄漏:你的JS代码在偷偷“吃”内存!

前端大全  · 公众号  · 前端  · 2025-04-22 10:15

正文

请到「今天看啥」查看全文


  • 「可达性分析(Reachability Analysis)」 :如果一个对象从全局作用域或当前执行的代码路径上无法访问,它才会被回收。
  • 所以,只要你的代码里 「无意间」 残留了一些对无用对象的引用,GC就无能为力了。


    「常见的前端内存泄漏场景(附真实案例)」

    「1. 忘记清理定时器(setInterval / setTimeout)」

    「杀伤力指数:🌟🌟🌟🌟🌟」

    「案例」

    functionstartTimer({
      setInterval(() => {
        console.log("Hello, 内存泄漏!");
      }, 1000);
    }

    这个 setInterval 会一直执行,哪怕你离开这个页面,它也不会停止,导致整个应用的内存占用越来越高!

    「解决方案」

    functionstartTimer({
      const timerId = setInterval(() => {
        console.log("Hello, 内存泄漏!");
      }, 1000);

      return() => clearInterval(timerId); // 提供一个清理函数
    }

    在组件销毁时(如 useEffect cleanup 或Vue的 beforeDestroy 钩子),手动清理定时器。


    「2. 事件监听器没有被移除」

    「杀伤力指数:🌟🌟🌟🌟」

    「案例」

    document.getElementById("btn").addEventListener("click"






    请到「今天看啥」查看全文