简单类型又叫做基本数据类型或者值类型
复杂类型又叫做引用类型
值类型
简单类型/基本数据类型,在存储时变量存储的是值本身,因此叫做值类型,如:
- String
- number
- boolean
- undefined
- null
- Symbol (ES6新增数据类型)
- bigInt
简单数据类型存放到栈里面
引用类型
复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型,通过new关键字创建的对象(系统对象、自定义对象),如:
- Object
- Array
- Date
复杂数据类型存放到堆里面
堆和栈
堆栈空间的分配区别:
1.栈
由操作系统自动分配释放存取函数的参数值、局部变量的值等。
2.堆
存储复杂类型,一般由程序员分配释放,把它设置为null,如果程序员不分配释放,则由垃圾回收机制回收。