JS 堆栈对比
此为 运行时内存(栈 / 堆)模型,与上文 Cookie、localStorage、IndexedDB 等 持久化存储 不是同一概念:前者随进程与 GC 生命周期变化;后者写入磁盘配额,可跨会话保留。
简单
shell
# 栈内存 Stack
连续内存、空间小、速度极快
存放:基本数据类型值、引用类型地址指针
自动分配、自动释放(函数执行完毕立刻销毁),不需要垃圾回收 GC
# 堆内存 Heap
散乱不连续、空间大、动态扩容
存放:所有引用类型本体(对象、数组、函数、闭包作用域)
不会自动释放,依靠垃圾回收 GC回收,完全由 GC 管理拓展
shell
# 堆栈的实际物理存储位置
注意:都在运行内存(内存条),不在硬盘,只是 JS 引擎内部划分区域。