简单数据类型和复杂数据类型
1.简单数据类型又叫做基本数据类型或值类型,复杂数据类型又叫作引用类型
2.值类型:在存储变量时变量中存储的是值本身,像JS中的五大数据类型:
string number boolean undefined null
注意:其中的null 它的返回值是object 是一个空对象;如果有个变量想以后存储为对象,暂时不知道里面放什么,就给赋值null 就是一个空对象
3. 引用类型:在存储变量时变量中存储的是地址(引用)
通过new 关键字创建的对象(内置对象,自定义对象)如: Object Date Array
堆和栈(JS本身没有)
堆:由操作系统自动分配释放存放函数的参数值,局部变量的值等
复杂数据类型存放在堆中
栈:一般由程序员分配释放,若程序员不释放,由垃圾回收 机制回收
简单数据类型存放在栈中
数据类型内存的分配
- 简单数据类型是存放在栈里面,里面直接开辟一个空间存放的是值
- 复杂数据类型:在栈中存放一个引用,它指向堆中的数据
像数组:在栈中开辟空间存放的是引用(十六进制的地址),数组名指向这块空间;而数组元素的值存放在堆中,由引用可以找到
数据类型的传参
- 简单数据类型的传参:将存放在栈中的值复制一份给形参,对形参修改,不改变实参
- 复杂数据类型的传参:将存放在栈中的引用(地址)复制一份给形参,对形参修改,改变实参
实参和形参指向的是同一个堆地址,操作的是同一个对象