数据、内存以及变量三者的关系/JavaScript内存的管理

本文介绍了数据的本质及其特点,解释了内存的概念,并详细探讨了数据、内存与变量之间的关系。此外,还讲解了JavaScript中内存的管理方式,包括变量的作用、内存释放机制以及垃圾回收机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据

  • 是什么
    • 本质为二进制
  • 特点
    • 可读
    • 可传递 b=a 注意:万物皆数据,函数也是数据

内存

  • 是什么?
    • 内存条通电后产生的存储空间(临时)
    • 产生:通电;结束:断电
  • 栈主要存储 基本变量、占用内存小
  • 堆主要存储 引用、地址 对象,占用空间大

变量

  • 是值可以变化的量

数据、内存、变量三者的关系

* 赋值操作传递的是地址值
* 变量保存的是基本变量类型
* 对象保存地址值

内存是一个容器, 用来存储程序运行需要操作的数据

变量是内存的标识, 我们通过变量找到对应的内存, 进而操作(读/写)内存中的数据

JavaScript如何管理内存

  • 释放内存:
    • 没有引用的时候将对象的值赋为null,在堆中释放,但是栈中的变量没有释放
    • 为执行函数分配的栈空间内存: 函数执行完自动释放(函数自上而下的执行,执行完毕后的函数不再执行,释放掉)
  • 注意:闭包
  • 垃圾回收机制GC:1、垃圾回收器会定时清理内存中不再继续使用的变量
  •                                2、由于垃圾回收器清除内存的开销比较大,所以不是实时清除,而是定时清除
  •                                3、当一个变量不再继续被使用时,就会被垃圾回收器清除掉。清除一般分为两种:计数清除、标记清除
  •                                      计数清除:指针个数为1时,不会被清除,但是有缺陷。如下:
  •                                      
      var foo={};
      var bar={};
      foo.a=bar;
      bar.b=foo; //此时指针个数永远不会为0
  •                                4、清除的一般为局部变量,闭包除外。
  •                                     闭包的作用:延长外部函数局部变量的声明周期
  • 关于闭包,详见:适合初级前端程序员:闭包是什么?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值