课程名称: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内存泄漏。今天学习就先到这里吧。
坚持打卡,坚持学习,未来可期,加油😀~
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦