说说JavaScript中的数据类型?存储上的差别?
基本数据类型包括以下几种:
UndefinedNullBooleanNumberStringSymbol(ES6新增)BigInt(ES2020引入,为大整数提供支持)
复杂数据类型主要是指对象,包括:
Object- 特殊对象(如数组
Array、函数Function、日期Date、正则RegExp等) - 新增的结构类型(如
Map,Set,WeakMap,WeakSet)
存储位置:
- 基本数据类型存储在栈内存中
- 复杂数据类型则存储在堆(Heap)内存中
- 当你创建一个复杂数据类型的变量时,实际上变量存储在栈内存中的是堆内存的地址引用,而真正的数据则存放在堆内存中
- 堆内存的特点是空间较大、存取速度相对较慢,并且不会自动释放,需要通过垃圾回收机制来处理。栈内存的特点是读取快,但空间有限