前端面试题课程笔记,课程笔记仅作为自用备忘
Ch5 知识深度-原理和源码
5.1 JS内存垃圾回收用什么算法?
1. 什么是 垃圾回收Garbage collection
- fn1里的数据会被回收
- fn2因为有外部引用,所以不能回收
- 闭包里的数据也不会被回收
2.垃圾回收的算法
- 引用计数(之前)
- 缺点:循环引用的问题
闭包不算内存泄露,因为闭包是有预期的,内存泄露是非预期的。
- 标记清除(现代)
5.2 (连环问)JS闭包是内存泄露吗?JS内存泄露的场景有哪些?
1.闭包不是内存泄露
闭包里的数据不能被回收
2.内存泄露的场景
-
被全局变量、函数引用,组件销毁时未清除