# 数据、变量和内存
# 数据
存储在内存中代表特定信息的东西,本质上是0101...
数据的特点:可传递,可运算
一切皆数据
内存中所有操作的目标:数据
算术运算
逻辑运算
赋值
运行函数
# 内存
- 内存条通电后产生的可储存数据的空间(临时的)
- 内存产生和死亡:内存条( 电路版)==>通电==>产主内存空间==>存储数据==>处理数据==>断电==> 内存空间和数据都消失
- 一块小内存的2 个数据
- 内部存储的数据
- 地址值
- 内存分类
- 栈:全局变量/局部变量
- 堆:对象
# 变量
- 可变化的量,由变量名和变量值组成
- 每个变量都对应的一块小内存,变量名用来查找对应的内存,变量值就是内存中保存的数据
# 内存、数据、变量三者之间的关系
- 内存用来存储数据的空间
- 变量是内存的标识
# 相关问题
var a = xxx,a内存中到底保存的是什么?
xxx是基本数据,保存的就是这个数据
XXX是对象,保存的是对象的地址值
xxx是一个变量,保存的xxx的内存内容(可能是基本数据,也可能是地址值)
关于引用变量赋值问题
2个引用变量指向同一个对象,通过一个变量修改对象内部数据,另一个变量看到的是修改之后的数据
2个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,另一引用变量依然指向前一个对象
在js调用函数时传递变量参数时,是值传递还是引用传递?
- 是值传递
JS引擎如何管理内存?
内存生命周期
分配小内存空间,得到它的使用权
存储数据,可以反复进行操作
释放小内存空间
释放内存
局部变量:函数执行完自动释放
对象:成为垃圾对象==>垃圾回收器回收
← 前端笔记