Step Over(F10)跳过函数调用执行下一行,Step Into(F11)进入函数内部逐行调试,Step Out(Shift+F11)执行完当前函数并返回调用处;三者均需在Sources面板暂停状态下使用。

在 JavaScript 调试中,Step Over(F10)、Step Into(F11) 和 Step Out(Shift+F11) 是浏览器 DevTools 中最常用的单步执行命令,它们控制代码逐行或逐函数地运行,帮助你精准定位逻辑问题。
Step Over(F10):跳过当前行,不进入函数内部
当你光标停在一行调用函数的代码上(比如 getData() 或 console.log(x)),按 F10 会直接执行完整个函数,然后停在下一行。它“跳过”函数体,不深入内部细节。
- 适合已确认无问题的辅助函数(如
Math.max()、JSON.parse()) - 避免陷入第三方库或内置方法源码(这些通常不可调试或没必要看)
- 注意:如果当前行没有函数调用,F10 就是普通“下一行”执行
Step Into(F11):进入当前行的函数定义处
当光标停在有函数调用的行(例如 calculateTotal(items)),按 F11 会跳转到该函数的第一行(前提是函数可调试,即非压缩、有 source map 或源码可用),开始逐行调试其内部逻辑。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
- 适用于你想检查参数传递是否正确、局部变量如何变化、分支是否走对
- 若函数是异步的(如
await fetch()),F11 不会进入 Promise 内部,而是等 await 完成后停在下一行(异步需配合 async/await 断点或debugger) - 如果函数来自压缩代码或没 source map,F11 可能跳到难以阅读的代码,此时建议改用 F10 跳过
Step Out(Shift+F11):快速执行完当前函数,返回到调用它的地方
当你已进入某个函数内部调试,又不想再逐行看下去,按 Shift+F11 会让 JS 引擎立即运行完剩余代码,然后停在该函数被调用的那一行的下一行。
- 适合:已确认函数前半部分没问题,想快速回到调用上下文继续观察结果
- 注意:它不关心函数是否有 return;无论是否走到 return,都会跳出并停在调用点之后
- 如果当前不在函数体内(比如在全局作用域或 debugger 断点第一行),Shift+F11 通常无效或无响应
小技巧与常见注意事项
这些操作必须在 DevTools 的 Sources 面板中处于暂停状态(即断点命中或手动按了 Pause)才能生效。确保:
- 代码未被压缩,或已正确加载 source map(否则 F11 可能跳错位置)
- 不要混淆 F11 和 Ctrl+Click:后者是“跳转到定义”,不是单步执行
- 在异步函数中,F10/F11 对
await行的行为是“等待 Promise settle 后继续”,不是真正“跳过 await” - 可在断点上右键 → “Edit breakpoint” 添加条件,让单步只在特定场景触发

















