js高级-垃圾回收机制及算法

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 内存 --- 自动回收 -- 内存泄露 --- 创建使用销毁
    // 没有代码, 纯理论,先听懂,在自己说,最后给面试官 ---- 被问的概念 40%
    // 80 小胖子  前天面试 就有这个题目  没有答出了

    // 垃圾回收机制
    // 1. 什么是垃圾? 不再使用的内存
    // 2. 什么是垃圾回收机制? 
          // 一个程序不再使用的内存,被js引擎‘自动回收’; 如果不能自动回收,就叫‘内存泄露’

    
    // 内存的生命周期 --- 创建,使用,销毁
    // 内存的创建 (声明一个变量,对象,函数)--- 都会在内存上开辟一个空间
    // 内存的使用  对于变量的一些操作,累加求和,获取dom元素,并修改属性等等
    // 内存的回收  不在使用的变量,会被js引擎自动回收 (全局变量是关闭页面才会销毁, 
    // 函数里面的变量,在函数调用完毕以后,自动销毁)


    const a = 10 // 背后机制: 在内存里面给我们的变量开辟了一个空间(内存),来储存这个变量
    function fn() {
      const a = 100;
    }
    fn() // 一个函数调用完以后,内部的变量就会被自动销毁
    console.log(a);
  </script>
</body>
</html>

垃圾回收机制的算法

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 6000 8000 10000 12000  ---- T4 T5 T6 T7 T8
    // 不在使用的内存,被js自动回收
    // 面试的回答: 垃圾回收机制: 有两个算法:  引用计数法 + 标记清除法

    // 1. 引用计数法:  一个值不在被引用(引用次数为0),那么这个值就会被清除,内存就会被自动回收
    // 2. 标记清除法
          // 为什么还会出现第二种计数法: 因为 引用计数法 有一些问题 (循环引用的问题)



    // 地址 和 值
    // 杨坤  t f
    // 刘辉  t
    // ==  比较的值 (简单数据类型,就是比较的值;复杂数据类型,比较的是地址(值))
    // === 比较的值和类型
    const o1 = {} // 在内存开辟一个新空间,就有一个新地址 0x111111
    const o2 = {} // 在内存开辟一个新空间,就有一个新地址 0x222222

    console.log(o1 == o2); // 复杂数据类型, (值??)比较的就是地址
    console.log(o1 === o2);
  </script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值