数据:
- 数据就是存放在内存中的东西,本质上是01010…
- 数据的特点:可传递,可运算
内存:
-
内存条通电后产生的可存储的数据空间 (临时的)
-
内存的产生的死亡:内存条(电路板)----通电----产生内存空间----存储数据----处理数据----断电----内存空间和数据消失
-
一块小内存的2个数据 内部存储的数据 地址值
-
内存分裂
- 栈:全局变量/局部变量
- 堆:对象
变量:
- 可变换的量,由变量名和变量值组成
- 每个变量都对应一小块内存,变量名用来查找对应的内存,变量值就是内存中保存的数据
严格区分变量类型和数据类型?
-
数据类型:基本类型和对象类型
-
变量的类型(变量内存值的类型):
- 基本类型:保存的就是基本类型的数据
- 引用类型:保存的是地址值
三者之间的关系
- 内存用来存储数据的空间,而变量用来找内存,变量名就是内存的标识,变量值就是数据
具体可以看图
👀客官这里看👀
问题1: let a=xxx a内存中到底保存的是什么?
1. xxx是基本类型,保存的就是这个数据
2. xxx是对象,保存的就是对象的地址值
3. xxx是变量,保存的是xxx的内存内容(可能是基本类型,可能是地址值)
问题2:在js调用函数传递变量参数是,是值传递还是引用传递?—值传递
**问题3:console.log({name: "小凡"} === {name: "小凡"})
输出true
还是false
**👍
**问题4:看下面代码:问最后输出的18还是20?**👍
let obj = {age: 18}
function f2(obj) {
obj = {age: 20}
}
f2(obj)
console.log(obj.age)//18?20
问题5:释放内存
- 局部变量:函数执行完自动释放
- 对象:成为垃圾对象==>垃圾回收器回收
注意b是自动释放,b所指向的对象是后面的某个时刻由垃圾回收器回收的