DevTools 不是程序员的专属工具
你可能听说过"开发者工具"(DevTools),觉得那是程序员才用的东西。但事实上,DevTools 里的很多功能,不需要任何编程知识就能用。 想象一下这些场景:- 你访问一个网站,页面一片空白——你想知道是网站挂了还是你的网络问题
- 你填了一个表单,点提交没反应——你想知道是按钮坏了还是服务器没收到
- 你看到页面上有个奇怪的布局——你想知道是浏览器的问题还是网站代码的问题
第一步:如何打开 DevTools
Chrome / Edge
三种方式,选最顺手的:F12 或 Ctrl + Shift + I(Mac: Cmd + Option + I)Firefox
F12 或 Ctrl + Shift + ISafari
先开启开发者菜单:Safari → 偏好设置 → 高级 → 勾选"在菜单栏中显示开发菜单"Cmd + Option + I你只需要认识 3 个标签
DevTools 有十几个标签,但非开发者只需要关注这 3 个:| 标签 | 干什么 | 你能用它做什么 |
|---|---|---|
| Console(控制台) | 显示网站的错误和警告信息 | 判断网站代码有没有出错 |
| Network(网络) | 显示所有网络请求 | 判断图片/API/资源有没有加载失败 |
| Elements(元素) | 显示网页的 HTML 和 CSS | 检查某个元素的样式和位置 |
Console 标签:读懂红色错误信息
什么是 Console
Console 是网站的"黑匣子"。当网站代码出错时,浏览器会把错误信息记录在这里。就像汽车的故障灯——你不需要懂发动机原理,但你需要知道哪个灯亮了。红色 = 错误,黄色 = 警告
- 🔴 红色信息:出错了,需要关注
- 🟡 黄色信息:有警告,可能有问题但不致命
- 🔵 蓝色/白色信息:普通日志,可以忽略
如何读懂一条错误信息
打开 Console 后,你可能会看到类似这样的红色文字:
Uncaught TypeError: Cannot read properties of undefined (reading 'map')
at ProductList.jsx:47:18
别被英文吓到,拆开来看:
| 部分 | 含义 | 你需要关注的 |
|---|---|---|
TypeError |
类型错误 | 错误类型 |
Cannot read properties of undefined |
试图读取不存在的数据 | 问题描述(翻译一下就行) |
ProductList.jsx:47:18 |
出错的位置:文件名第47行第18列 | 告诉开发者去哪修 |
常见错误类型(翻译版)
| 英文错误 | 中文含义 | 可能的原因 |
|---|---|---|
TypeError |
类型错误 | 数据格式不对,代码期望一个对象但收到了空值 |
ReferenceError |
引用错误 | 代码用了一个不存在的变量或函数 |
SyntaxError |
语法错误 | 代码写法有误,浏览器无法解析 |
RangeError |
范围错误 | 数值超出了允许范围 |
Network Error |
网络错误 | 请求没有成功到达服务器 |
404 Not Found |
找不到 | 请求的资源不存在 |
500 Internal Server Error |
服务器内部错误 | 服务器代码出 bug 了 |
Console 里最常见的 5 种问题
1. 白屏 + TypeError 页面加载后一片空白,Console 里有红色 TypeError。通常是 JavaScript 崩溃导致页面无法渲染。 2. 某个功能没反应 + ReferenceError 点击按钮没反应,Console 里有红色 ReferenceError。通常是相关代码没有正确加载。 3. 数据不显示 + TypeError: Cannot read properties of undefined 列表或表格区域为空,Console 有这类错误。通常是后端返回的数据格式和前端期望的不一致。 4. 页面部分区域空白 + 404 错误 某些图片或组件不显示,Console 有 404 错误。资源文件路径错误或被删除了。 5. 加载很慢 + 大量黄色警告 页面加载缓慢,Console 有很多黄色警告。可能是加载了过多不必要的资源或有性能问题。Network 标签:发现加载失败的资源
什么是 Network
Network 标签记录了页面加载时所有的网络请求——图片、CSS、JavaScript、API 接口、字体文件,一切从服务器获取的资源都在这里。如何使用
F5)颜色编码
| 颜色 | 含义 |
|---|---|
| 红色 | 请求失败(4xx/5xx 错误) |
| 灰色 | 请求被阻止或取消 |
| 其他颜色 | 请求成功 |
重点关注:状态码
每个请求都有一个状态码,这是判断问题最直接的线索:| 状态码 | 含义 | 你看到的现象 |
|---|---|---|
| 200 | 成功 | 一切正常 |
| 301/302 | 重定向 | 被跳转到另一个地址 |
| 400 | 请求错误 | 表单提交数据格式不对 |
| 401 | 未授权 | 需要登录但没有登录 |
| 403 | 禁止访问 | 没有权限访问这个资源 |
| 404 | 找不到 | 图片/页面/接口不存在 |
| 429 | 请求过多 | 被限流了,稍后再试 |
| 500 | 服务器内部错误 | 服务器代码出 bug 了 |
| 502 | 网关错误 | 服务器过载或维护中 |
| 503 | 服务不可用 | 服务器暂时无法处理请求 |
实战:用 Network 诊断"图片加载不出来"
Img(只看图片请求)- 404 → 图片路径错误或图片被删除
- 500 → 服务器在处理图片请求时出错了
- 没有对应请求 → 图片 URL 根本没有被请求(可能是前端代码问题)
实战:用 Network 诊断"表单提交没反应"
Elements 标签:检查元素样式
什么是 Elements
Elements 标签显示网页的 HTML 结构和 CSS 样式。你可以用它来检查某个元素的属性、样式、位置。最实用的功能:检查元素
非开发者能用它做什么
检查图片为什么显示不对:- 找到
<img>标签
- 查看
src属性——图片地址是否正确
- 查看
width和height——尺寸是否被限制
- 找到文字元素
- 查看 CSS 中的
overflow属性——是否设置了hidden
- 查看
white-space和text-overflow——是否限制了文字换行
- 找到按钮元素
- 查看 CSS 中的
z-index——是否被其他元素覆盖
- 查看
pointer-events——是否被禁用了点击
- 查看
display和visibility——是否被隐藏
注意:在 Elements 里的修改是临时的
你在 Elements 标签里修改的任何样式,刷新页面后就会恢复。这只是用来调试,不会真正改变网站。放心大胆地试,不会搞坏任何东西。5 个实战案例
案例 1:页面白屏
现象:打开网站,页面一片空白 诊断步骤:TypeError案例 2:图片显示为破碎图标
现象:页面上的图片显示为破碎图标或空白区域 诊断步骤:src 属性中的 URL案例 3:表单提交后没反应
现象:填写表单后点提交,页面没有反馈 诊断步骤:ReferenceError: submitForm is not defined案例 4:页面加载很慢
现象:页面打开需要 10 秒以上 诊断步骤:案例 5:移动端布局错乱
现象:手机上打开网站,按钮和文字重叠 诊断步骤:Ctrl + Shift + M 切换到设备模拟模式@media 规则——发现缺少移动端适配有没有更简单的方式?
如果你觉得打开 DevTools、找 Console、找 Network、复制错误信息还是太麻烦了——有一个更简单的方式。 BugCapturer 可以自动帮你完成这些操作。 当你用 BugCapturer 截图并提交反馈时,它会自动采集:- 控制台错误:最多 10 条 error 级别的日志(含文件名和行号)
- 失败的网络请求:最多 5 条状态码 ≥ 400 的请求(含 URL、方法、状态码)
- 技术环境信息:URL、浏览器、操作系统、屏幕分辨率、视口尺寸、DPR