DevTools 调用栈与作用域
DevTools 的 Call Stack 与 Scope 用来解释当前代码是怎么走到这里的,以及当前能访问哪些变量。
#type / concept
#status / growing
#tech / dev / frontend
#platform / browser
#resource / chrome-devtools
[!info] related notes
- 所属 MOC: DevTools Sources MOC
- 前置概念: 执行上下文, 调用栈和执行上下文的关系
- 并列概念: 断点调试
- 关系笔记: Sources 面板
DevTools 调用栈与作用域
一句话定义
Call Stack 解释“当前代码是怎么走到这一步的”,Scope 解释“这一刻到底能访问哪些变量”。
核心内容
Call Stack 看什么
- 当前函数是谁调用的
- 调用链上经过了哪些事件、回调或 Promise
- 异常是从哪一层冒出来的
Scope 看什么
- 局部变量当前值
- 闭包引用的外层变量
- 全局变量
this当前绑定
实用判断方法
- 变量值不对:先看 Scope
- 不知道是谁触发:先看 Call Stack
- 异步顺序不对:看调用链和暂停点是否落在预期任务边界
边界与易混淆点
- Call Stack 给的是运行时路径,不等于源码静态依赖关系
- Scope 里的值是“当前暂停时刻”的快照,要和代码执行时序一起理解