继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

丶这是一个点
关注TA
已关注
手记 60
粉丝 1
获赞 1

课程名称: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内存泄漏。今天学习就先到这里吧。

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

​​​​​​​
​​http://img4.mukewang.com/6371e4ff00013de525161515.jpg


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP