JS高级类型存储方式——含堆/栈分析

1、内存

  • 在编写正式内容前,首先需要弄清楚的一个概念就是:内存
  1. 内存 :也就是电脑中的硬件内存越大,可以同时开启的程序就越多
  2. 内存的作用
    • 存储运行中的代码,把代码执行过程中所需要的数据,都放在内存中,进行临时的存储
    • 程序关闭时,在从内存中取出这些数据,所有的变量在程序运行的过程中都是放在内存中进行存储的

2、堆/栈概念

2.1、栈

  • 概念:
    • 是一种数据结构,遵循后进先出(LIFO,Last In First Out)的原则。
    • 也就是:最先入栈的数据最后出栈,而最后入栈的数据最先出栈。
  • 栈中的数据结构
    • 中,通常存储函数调用时的局部变量、参数和返回地址
    • 中的每个元素可能包括变量实际值对象的引用地址

2.2、堆

  • 概念:
    • 是一种用于动态分配内存内存区域
    • 程序运行时,可以在中申请所需的内存,并在使用完毕后手动释放。
  • 堆中的数据结构
    • 栈中的指针:保存指向堆中数据的内存地址。
    • 堆中的值:实际存储在堆中的数据,如对象的属性或数组的元素。

2.3、注意

  1. 我们在存储高级类型变量中,存储的并不是高级类型的值,而是高级类型的地址
    • 比如:在里存储了arr数组,那么跟它一起存放的并不是对应的数据,而是对应数据存储的地址
    • 这个地址的对应的位置是,把数据放在了里,并给它取一个"名字"也就是地址,方便获取地址
  2. 堆/栈的存储模型不是一样的

3、高级类型存储的特征

// 示例1:
          var arr1 = [];
          var arr2 = [];
    // 1)比对时,结果为false
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值