Skip to content

JS 的存储结构 ​

栈结构 ​

调用栈 ​

管理函数调用的关系的一种数据结构

函数调用 ​

运行一个函数,函数名称跟着一对小括号执行

栈 ​

一种数据结构,后进先出

总结 ​

在执行上下文创建以后,JavaScript 引擎会将执行上下文压入栈中,把这种管理执行上下文称为执行上下文栈,即调用栈 函数执行完毕之后,JavaScript 引擎会将函数的上下文出栈

栈溢出 ​

调用栈是有大小的(容量限制),超过一定数目,就会栈溢出

内存空间 ​

代码空间、栈空间、堆空间

基本原始类型

Number, String, Boolean, Undefined, Null, Symbol, BigInt(存放安全数据,超出范围安全处理)

引用类型

Object

代码空间 ​

存放可执行代码

栈空间 ​

基本原始类型数据存放与栈空间中(调用栈)

堆空间 ​

引用类型存放与堆空间中(存放的是引用地址)

JS 内存管理 变量分配 ​

静态区 ​

  • 存放全局变量(基本类型)

调用栈 ​

  • 栈中执行上下文(作用域链 = 变量对象、this 指向环境)
  • 只能读写自己栈帧的内存
  • 调用栈调用结束自然销毁,实时性高

堆 ​

  • 对象、数组、函数(引用类型)
  • 动态的读写
  • 不具备很高的实时性,由单独的 gc 线程控制

Released under the MIT License.