最直接方式是点击“+”号手动添加表达式,支持当前作用域合法表达式及函数调用,但不支持赋值或声明;右键变量名可快速加入监视,避免手输错误;支持重命名和拖拽调整顺序,所有操作均基于当前暂停帧作用域。

点击“+”号手动添加表达式
这是最直接的方式,适合已有明确目标变量或表达式的情况。调试暂停后,“监视”面板右上角会出现一个“+”图标,点击它会弹出输入框。
输入内容必须是当前作用域(或调用栈中可达)的合法表达式,比如user.name、items.length、JSON.stringify(data)。注意:
- 拼写错误或未定义变量会导致显示
NaN或ReferenceError,不是面板故障,而是求值失败 - 支持函数调用,如
validateInput(value),但该函数必须在当前上下文中可访问 - 不支持赋值语句(如
x = 5)或import等声明式语法
右键变量名快速加入监视
调试暂停时,把光标悬停在编辑器中某个已高亮的变量名上(例如response.data.users),右键菜单里会出现“添加到监视”选项。
这个方式能避免手输错误,尤其对嵌套深、命名长的变量很实用。但要注意:
- 仅对当前堆栈帧中实际存在的变量生效;如果变量被优化掉(如未使用、未声明),右键菜单不会出现该选项
- 若变量名含空格或特殊字符(如
user-first-name),右键可能无法识别,此时需手动输入user["first-name"] - 它添加的是原始标识符,不会自动包裹
JSON.stringify等格式化逻辑
重命名监视项提升可读性
默认显示的表达式容易冗长或缺乏业务语义,比如props.children[0].props.id不如“首子组件ID”直观。
鼠标悬停在监视项上,右侧会出现铅笔图标,点击即可编辑名称。修改后回车保存,名称会立刻更新,但底层求值逻辑不变。
这个操作不影响调试行为,但对多人协作或长期调试会话特别有用——尤其是当你需要反复查看同一组状态时。
拖拽调整监视项顺序
多个监视项之间如果有数据依赖关系(例如先看inputData,再看processedData,最后看output.length),按逻辑流排列能减少视线跳转。
把鼠标移到某监视项左侧空白处,光标变成四向箭头后按住左键拖动即可。VSCode 会实时显示插入位置提示线。
注意:拖拽只改变显示顺序,不改变求值时机或优先级——所有监视项都在每次断点暂停时统一刷新。
真正容易被忽略的是作用域边界:监视表达式不是在全局环境里执行的,而是基于当前暂停帧的上下文。比如在异步回调里设断点,就无法通过监视访问外层函数中已被释放的临时变量,哪怕名字一样。


















