1. 简单数据类型:基本数据类型
- 存储变量时候的存储值
- string、number、boolean、undefined、null
2. 复杂数据类型
- new实例化的对象(系统对象、自定义对象)
- Object、Array、Date
3. 堆和栈以及复杂数据类型和简单数据类型的分配
- 简单数据类型(栈)
- 简单数据类型存放在栈里面
- 存放的是值:里面直接开辟一个空间
- 复杂数据类型放在(堆)
- 先在栈里面开辟空间:复杂类型名指向开辟的栈空间,栈空间存放只存放堆的地址并指向堆,堆开辟一整个空间,里面分割出多个复杂数据类型
4. 简单数据类型传参
1. 解释
- 预解析执行过程
- 简单数据类型名:先命名:在栈里面开辟空间
- 赋值
- 最后再次改变值
2.解释
- 执行预解析变量向上提
- 函数不调用不执行
- 给x赋值了10
- 然后调用函数还是执行函数
- 把初始参数x进行+1
- 最后打印
5. 复杂数据类型传参
- 遵循不调用不执行
- 传参到parson函数 = 刘
- 打印暑促p.name = 刘
- 调用函数
- 开始执行函数中的代码
- 第一个输出 = 刘
- 第二个因为修改了变量 = 张
- 最后输出 = 张