oid 值 内存使用_[JS基础] 1 - 内存空间

83ed345183d2c772e9158f9f4490f584.png
1. 基本类型, 引用类型
2. 变量对象 和 堆内存

基本类型 保存在 栈stack内存中
引用类型值 保存在 堆heap内存中
事件循环机制 是在队列queue中

闭包引用会 保存在 堆heap内存中

预备知识

1 - heap, stack, queue

  • 堆 heap: 类似kv, 我们知道key, 就能获取到value。
  • 栈 stack: 栈空间先进后出,后进先出的特点。
  • 队列 queue: 先进先出, Event Loop事件循环应用。

2 - 变量对象 和 基础类型

  • 基础类型: Undefined, Null, Boolean, Number, String.
  • js执行上下文后, 创建一个叫做 [变量对象] 的特殊对象。
  • 基础数据类型 保存在 [变量对象]。

3 - 堆内存 和 引用类型

  • 引用类型: Object, Array....
  • 引用类型的值 是保存在堆内存的对象。
// 基础类型, 放在 变量对象中
const a = '1'
const b = 666
const c = true
const d = undefined

// 引用类型, 值放在 堆内存中
const e = { m: 20 }
const f = [1, 2, 3]

// 变量e,f 放在变量对象中, 值放在堆内存中, 通过地址指针相连接

8c954801e419956dc94ed0e99efb0e38.png
// 例子1
var a = 20;
var b = a;
b = 30;
// 这时a的值是多少? 20

// 例子2
var m = { a: 10, b: 20 }
var n = m;
n.a = 15;
// m.a的值是多少? { a: 15, b: 20 }

97d3b1b3745d89e162c4c4137c6ba539.png

5 - 内存空间管理

  • 当你声明一个变量的时候,就会给该变量分配一个内存空间(变量对象)
  • 使用完毕后, 释放
let a = 666
a = null // 自动垃圾收集机制

自动垃圾收集机制: 就是找出那些不再继续使用的值,然后释放其占用的内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值