讲师中心 微信公众号
AI工具推荐 视频效率加速

javascript如何调试代码_浏览器开发者工具有哪些技巧?

酷静君_9617

酷静君_9617

发布时间:2026-01-13 18:54:10

|

892人浏览过

|

来源于php中文网

原创

在Chrome DevTools中打断点不漏异步逻辑的关键是“何时停住”而非“在哪打”:用debugger语句、条件断点、XHR/fetch断点;替代console.log的高效方式有console.table、console.group、console.time及格式化输出;CSS不生效需检查禁用缓存、硬重载及构建工具HMR配置;定位React/Vue元素渲染源需启用对应DevTools插件并使用右键Reveal功能。

javascript如何调试代码_浏览器开发者工具有哪些技巧?

Chrome DevTools 里怎么打断点才不漏掉异步逻辑?

直接在源码行号上点一下加断点,对同步代码有效,但遇到 Promise.then、setTimeout、事件回调或 React 的 useEffect 时,往往还没走到就跳过了。关键不是“在哪打”,而是“什么时候停住”。

  • 用 debugger 语句写死在关键位置,比如 fetch().then(data => { debugger; console.log(data); }),它会在执行到时强制触发断点,不受代码压缩或动态加载影响
  • 在 DevTools 的 Sources 面板右键某行 → Add conditional breakpoint,填入 typeof data !== 'undefined' 这类判断,只在满足条件时中断
  • 对 XHR/fetch 请求调试,打开 Network 面板,右键某请求 → Break on fetch/XHR,下次同 URL 发起请求时自动停在调用栈源头

console.log 太原始?替代方案有哪些真正省时间?

console.log 容易刷屏、难定位、看不出结构,尤其处理嵌套对象或 DOM 节点时。DevTools 提供了更精准的输出方式。

  • 用 console.table(data) 查看数组或对象列表,自动转成可排序表格,比展开 console.log 快 3 秒以上
  • 用 console.group('API Calls') + console.groupEnd() 折叠日志块,配合 console.time('load') / console.timeEnd('load') 测耗时
  • 在 console.log 中用格式符:console.log('User: %o, Time: %dms', user, duration),%o 点击可交互展开对象,%d 强制转数字,避免字符串拼接出错

为什么修改 CSS 后页面没变?检查这三处缓存

样式改了但不生效,90% 不是代码问题,而是浏览器或工具层缓存干扰。

React Wrap
React Wrap

React UI?—— JavaScript?

下载
  • DevTools 的 Network 面板勾选 Disable cache(仅在 DevTools 打开时生效),防止资源被强缓存
  • 右键刷新按钮 → Empty Cache and Hard Reload,清掉内存与磁盘缓存,绕过 Service Worker
  • 如果用了构建工具(如 Vite/Webpack),确认没启用 css HMR 故障:Vite 默认热更新 CSS,但若样式写在 JS 里(如 el.style.color = 'red'),则需手动刷新

如何快速定位某个元素是谁渲染的(React/Vue 场景)?

看到页面上一个按钮,想立刻知道它对应哪段组件代码,不用全局搜 button。

立即学习“Java免费学习笔记(深入)”;

  • 在 Elements 面板中右键该 DOM 节点 → Reveal in Components panel(React)或 Reveal in Vue panel(Vue 3),自动跳转到组件定义处
  • 如果没看到该选项,说明未启用对应框架的 DevTools 插件:React 需装 React Developer Tools,Vue 需装 Vue Devtools,且页面必须运行非生产版构建(process.env.NODE_ENV !== 'production')
  • 快捷键 Ctrl+Shift+P(Win)或 Cmd+Shift+P(Mac)→ 输入 debug,可快速打开 “Debug in Sources” 或 “Capture node screenshot” 等隐藏命令
function handleLogin() {
  const token = localStorage.getItem('auth_token');
  if (!token) {
    console.warn('Missing auth_token — redirecting to login');
    window.location.href = '/login';
    return;
  }
  // debugger; ← 这里加一行,比反复刷新快得多
  fetch('/api/profile', {
    headers: { Authorization: `Bearer ${token}` }
  })
  .then(r => r.json())
  .then(data => {
    console.table(data); // 比 console.log(data) 更直观
  });
}
实际调试中最容易卡住的,是假设“断点打了就一定停”,而忽略了异步调度、代码分割、服务端渲染(SSR)水合时机这些隐性依赖。多看一眼 Call Stack 和 Scope 面板里的变量值,比重跑十次更快。

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

相关专题

更多
chrome什么意思
chrome什么意思

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

2846

2023.08.11

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

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

5739

2023.11.06

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

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

4087

2026.03.24

java中break的作用
java中break的作用

本专题整合了java中break的用法教程,阅读专题下面的文章了解更多详细内容。

3020

2025.10.15

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

807

2025.10.24

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1838

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2904

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

6224

2023.10.24

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

热门下载

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

精品课程

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

共14课时 | 1.6万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 6.1万人学习

CSS教程
CSS教程

共754课时 | 99.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn