为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 【金秋打卡】第22天 前端面试技能拼图3

【金秋打卡】第22天 前端面试技能拼图3

2022.11.14 15:34 87浏览

课程名称:2周刷完100道前端优质面试真题
课程章节:第5章 前端面试技能拼图3 :知识深度 - 原理和源码
主讲老师:双越

课程内容:

今天学习的内容包括:
5-4 -JS内存垃圾回收用什么算法——内存垃圾回收目前使用的是标记清除,以前使用的是引用计数。
5-5 -【连环问】JS闭包是内存泄漏吗——闭包中数据不能被回收,不是内存泄漏。

课程收获:

垃圾回收 - GC
  • 什么是垃圾回收?
  • 引用计数(之前)
function fn1() {
    const a = 'aa'
    console.log(a)

    const obj = { x: 100 }
    console.log(obj)
}
fn1()
  • 标记清除(现代)
  • 外部引用不能被回收
function fn2() {
    const obj = { x: 100 }
    window.obj = obj
}
fn2()
  • 闭包数据不被回收
function getDataFns() {
    const data = {} // 闭包
    return {
        get(key) {
            return data[key]
        },
        set(key, value) {
            data[key] = value
        }
    }
}
const { get, set } = getDataFns()
set('x', 100)
get('x')
  • 循环引用
function fn3() {
    const obj1 = {}
    const obj2 = {}
    obj1.a = obj2
    obj2.a = obj1
}
fn3()
IE6-7 内存泄漏的 bug
var div1 = document.getElementById('div1')
div1.a = div1
div1.someBigData = {}

今天的 学习了 JS内存垃圾回收用什么算法和【连环问】JS闭包是内存泄漏吗。在以往的学习工作中会遇到浏览器因为内存问题崩溃的情况,通过今天的了解,知道了是因为内存回收问题导致,而不仅仅是代码的问题。

下一步就是 学习了 如何检测JS内存泄漏。今天学习就先到这里吧。

坚持打卡,坚持学习,未来可期,加油😀~

​​​​​​​
​​https://img4.sycdn.imooc.com/6371e4ff00013de525161515.jpg


点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
1
获赞与收藏
1

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

51篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

152篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消