JS的内存空间

在学习内存空间,需要先了解三种基本的数据结构:栈、堆,队列
栈数据结构
与其他语言不同的是,JS并没有严格区分栈内存和堆内存,所有的值都是存储在堆内存中,区别在与数据类型和访问的方式不同
以下图片展示了栈内存的数据结构
在这里插入图片描述
栈结构就好比商品的存储,先拿进来的后出去,后拿进来的先出去,图中已经详细展示栈的存储原理
堆数据结构
堆数据结构是一种树状结构。
队列数据结构
队列是先进先出的方式,就好比买东西排队,在前面是最先结账的,以下图展示了队列的存储原理
在这里插入图片描述
JS的数据类型
在JS中,数据类型分两种,基本数据类型和引用数据类型
基本数据类存储都是一些简单的数据段,JS中有五中数据类型,String、Number、Boolean、Undefined、Null,基本数据类型是按值访问的,因此可以实际操作保存变量的值
而引用数据类型就不一样了,引用类型的值是保存在内存对象中,但是又不能直接访问内存中的位置,在操作对象时,实际是在操作对象的引用而不是实际的对象,这里的引用,理解为变量存储一个对象的内存地址,然后通过这个地址找到对应的值
内存空间管理
因为JS中,有自动垃圾回收机制,在开发中,不需要我们关心内存的使用,内存的分配以及无用的内存回收已经完全实现 了自动管理
JS的内存生命周期
分为三个阶段

内存分配
内存使用
内存释放

以下例子讲解了内存生命周期的过程

var num = 20;    给变量分配内存
console.log(num);  内存使用
num = null;   使用完毕,释放内存

垃圾收集机制的原理:找出那些不再使用的变量,然后释放其占用的内存,垃圾收集器会按照固定的时间,周期性的执行这一操作
在JS中,常用的垃圾收集方式是标记清除,num=null就解除了变量的引用,让它脱离了环境,这个变量会在垃圾收集器执行找到就被释放。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值