Skip to content

说说JavaScript中的数据类型?存储上的差别?

基本数据类型包括以下几种:

  • Undefined
  • Null
  • Boolean
  • Number
  • String
  • Symbol (ES6新增)
  • BigInt (ES2020引入,为大整数提供支持)

复杂数据类型主要是指对象,包括:

  • Object
  • 特殊对象(如数组Array、函数Function、日期Date、正则RegExp等)
  • 新增的结构类型(如Map, Set, WeakMap, WeakSet

存储位置:

  • 基本数据类型存储在栈内存中
  • 复杂数据类型则存储在堆(Heap)内存中
  • 当你创建一个复杂数据类型的变量时,实际上变量存储在栈内存中的是堆内存的地址引用,而真正的数据则存放在堆内存中
  • 堆内存的特点是空间较大、存取速度相对较慢,并且不会自动释放,需要通过垃圾回收机制来处理。栈内存的特点是读取快,但空间有限