JS 底层探究-- 调用栈(Call Stack)

1. 一句话定义

调用栈 = JS 引擎用来记录「当前正在执行谁」「接下来要执行谁」的栈结构

遵循规则:后进先出(LIFO)

2. 执行规则

  1. 代码一开始运行全局执行上下文 先入栈
  2. 调用函数 :该函数的执行上下文入栈,JS 立刻执行它
  3. 函数执行完 :该函数上下文出栈,回到上一层
  4. 整个程序结束:全局上下文最后出栈,调用栈清空

例子

TypeScript 复制代码
// 全局上下文
console.log("全局开始");

function a() {
  console.log("函数 a 执行");
  b(); // 调用函数 b
}

function b() {
  console.log("函数 b 执行");
}

a(); // 调用函数 a
console.log("全局结束");

4. 调用栈的作用

  • 保证 JS 单线程、同步执行
  • 追踪函数执行位置
  • 报错时能看到调用栈轨迹(Chrome 控制台里的 stack trace)

总结

  • 调用栈 :管理执行上下文的后进先出栈结构
  • 执行流程:全局入栈 → 函数入栈 → 函数出栈 → 全局最后出栈
  • 核心意义 :决定 JS 代码谁先执行、谁后执行
相关推荐
平头哥~3 小时前
Day 07 _ 那条 1px 的线,为什么在手机上忽粗忽细
前端·css·样式·学习资料
论迹复利3 小时前
FreeRTOS 在 RISC-V 上是如何“点火“的 —— 从 main() 到第一个任务的完整链路
java·开发语言·risc-v
小江的记录本3 小时前
【CSS】CSS 动画:transition、animation、transform、CSS3 新特性(附《思维导图》)
前端·css·安全·spring·前端框架·css3·动画
circuitsosk3 小时前
任务规划器的三种范式对比:ReAct、Plan-and-Execute 与 Tree-of-Thought 在真实业务中的取舍
前端·javascript·python·react.js·llm·ai agent
张宇Joaquin3 小时前
鲲鹏统一并行加速库KUPL--众核并行能力介绍
java·开发语言·网络
736c4 小时前
C语言-数组 07
c语言·开发语言
宸津-代码粉碎机4 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
hzxpaipai5 小时前
企业官网技术架构拆解:前端、后台、数据库、服务器如何协同
前端·数据库·架构
小磊哥er5 小时前
深入解构Claude Code - 第 12 篇 · 整体串起来
javascript·ai编程
小磊哥er5 小时前
深入解构Claude Code - 第 11 篇 · 工程上的讲究
javascript·ai编程