javascript中数据类型分为两类:原始类型和引用类型。
原始类型(也称基本类型或简单类型):
- number、string、boolean
- undefined、null
引用类型(也称复杂类型):Object、Array、Date、Function.
基本类型与引用类型的区别
存储方式:
- 原始值占用空间固定,存储在栈(stack)中。【栈中存储的是基础变量以及一些对象的引用变量。基础变量存储在栈中的是值,而引用变量存储在栈中的是指向堆(heap)中存储对象的地址】
- 复杂值大小会改变,占用空间不固定,保存在堆(heap)中。【存在栈中会降低变量查询速度】
访问方式:
原始值是作为不可细化的值进行存储和操作的,引用它们会转移其值
复杂值是通过引用进行存储和操作的,而不是实际的值。创建一个包含复杂对象的变量时,其值是内存中的一个引用地址。所以修改引用类型会影响到其他指向这个地址的引用变量