2020.3.20
标记清除: JavaScript从根部定时扫描,从根部节点遍历引用
5.28
垃圾回收:标记清除
js引擎会定时的扫描遍历
js引擎会遍历所有可以访问的和不可访问的变量,为每个变量加上标记。
然后,在给不可访问的变量加上标记,(也就是环境中的变量以及被环境中的变量引用的变量除外),那么拥有两个标记的变量会放入准备删除队列。
6.7
闭包是把函数内部的变量暴露出来供外部函数引用,也就是外部函数可以引用内部函数的变量。
那么就会导致内存泄漏。
内存泄漏,也就是,环境中的变量引用到某个应该被删除的变量,导致它无法删除,一直存在,无法进入准备删除队列。