JavaScript垃圾回收
JavaScript的垃圾回收主要是看变量的值可达还是不可达与变量名称无关
let userName = "张三"
console.log(userName) // 变量值张三可通过userName访问即可达,所以变量值张三不会被回收
userName = "李四"
console.log(userName) // 输出: 李四 这时值张三不可访问即不可达,所以张三会被回收
复杂情况:
let user = {
"name": "张三",
"age": 18,
"gender": "男"
}
const array = [user,'3333']
user = 'aaaa'
此时user被重新赋值但是原本的对象可以通过array[0]访问,所以原对象可以被访问
所以不会被回收
结果如下图: