javascript debug技巧有哪些_怎么使用开发者工具【教程】

落瑶小哥_4919

落瑶小哥_4919

2026-01-19

281人浏览

原创

在 Chrome DevTools 中打断点调试需点击行号左侧设断点,或用 debugger 语句;异步代码须在回调内设点;通过 Scope 面板查 this 和闭包;Network 面板分析请求状态与数据;启用 Disable cache 和 Workspaces 实现热更新;开启 Async 开关追踪异步调用栈。

javascript debug技巧有哪些_怎么使用开发者工具【教程】

怎么在 Chrome DevTools 里打断点调试 console.log 不够用时

当 console.log 只能告诉你“值变了”,却说不清“谁改的、什么时候改的、改之前是什么”,就得用断点。最直接的方式是点击源码行号左侧空白处,DevTools 会加一个蓝色圆点——这就是断点。刷新页面后,执行到这一行就会暂停。

  • 右键断点可编辑条件:比如只在 user.id === 123 时触发
  • debugger; 语句等价于手动打点,但需确保没被代码压缩移除(UglifyJS/Terser 默认会删)
  • 异步代码(如 setTimeout、fetch 回调)里打点,要确认断点在回调函数体内,而不是外层同步代码里

为什么 console.log(this) 总是 window 或 undefined?用 “Scope” 面板看真实上下文

箭头函数不绑定 this,事件回调里未显式绑定时 this 也常失焦。这时候光靠 console.log 打印没用,得看 DevTools 的 “Scope” 面板——它实时显示当前暂停位置的所有作用域变量,包括 this 指向的对象、闭包捕获的变量、全局变量。

  • 暂停后,在右侧 “Scope” 面板展开 This,点三角就能看到属性和原型链
  • 如果 This 显示 undefined,说明当前函数是严格模式下的普通函数调用(非对象方法、非 call/apply)
  • 想验证是否闭包生效?在 Scope 里找 “Closure” 分组,里面列出的就是被当前函数捕获的外部变量

网络请求卡住或返回异常,怎么快速定位是前端发错还是后端崩了?用 “Network” 面板查 fetch 和 XMLHttpRequest

不要先翻后端日志,先打开 Network 面板,过滤出 XHR 或 Fetch 类型请求,点开具体条目看四件事:状态码、响应头、请求体、响应体。很多问题一眼就能判责。

cn-json-diff
cn-json-diff

比较两个 JSON 文件并显示差异。支持嵌套结构、数组及值变更。纯 Python 标准库实现,无需 API 密钥。

下载
  • 状态码是 400 且响应体含 "message": "Invalid token" → 前端传了错误 token,不是后端挂了
  • 请求体里 body 是空的,但代码写了 JSON.stringify(data) → 可能 data 是 undefined,序列化后变成 "undefined" 字符串,后端解析失败
  • 状态码是 0 或一直 pending → 检查是否跨域被拦截(看 Console 是否有 CORS 错误)、或请求 URL 写成 http:// 而当前页是 https://

修改 CSS 或 JS 后页面没反应?别急着清缓存,先确认 “Disable cache” 和 “Workspaces” 设置

本地开发时改了 JS 文件但浏览器没加载新版本,大概率不是缓存问题,而是 DevTools 没启用实时重载能力。

  • Network 面板右上角勾选 Disable cache(仅在 DevTools 打开时生效),避免本地测试被强缓存干扰
  • 如果用 VS Code 编辑文件,可在 Sources 面板右键 → Add folder to workspace,把项目目录映射进去,之后在 Sources 里直接编辑、保存,浏览器会自动注入新代码(无需刷新)
  • 注意:Workspaces 不支持 eval 生成的脚本、内联 <script></script>、或通过 document.write 插入的代码
function handleClick() {
  console.log('before');
  debugger; // 这里暂停后,可直接在 Console 输入 this.userId 查值
  fetch('/api/user', {
    method: 'POST',
    body: JSON.stringify({ id: this.userId })
  });
}

实际调试中最容易忽略的是异步堆栈追踪——比如在 Promise.catch 里打断点,看不到前面哪一步 reject 的。这时要点开右上角“Async”开关,让调用栈显示完整异步链路。

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2255

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3642

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1216

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

4219

7

chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2906

5

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.06

5919

7

Chrome开启无痕模式
Chrome开启无痕模式

本专题整合了Chrome无痕模式开启相关内容,阅读专题下面的文章了解更多详细教程。

2026.03.24

4207

22

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

2023.09.14

14906

6

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.14

1745

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.6万人学习