0

0

如何用JavaScript进行代码调试_断点和性能分析怎么做

夢幻星辰

夢幻星辰

发布时间:2025-12-31 02:39:17

|

573人浏览过

|

来源于php中文网

原创

chrome devtools调试需正确设断点并启用sourcemap,善用debugger和console.table等api,performance面板录制要勾选network和screenshots,用performance.mark/measure精准计时,注意执行上下文和干扰因素。

如何用javascript进行代码调试_断点和性能分析怎么做

Chrome DevTools 里怎么打断点

直接在 Sources 面板左侧文件树中点击行号即可设置断点,这是最常用也最可靠的方式。但要注意:如果代码经过打包(比如用 Webpack、Vite),原始 sourceMap 没开启或加载失败,断点会打在压缩后的 bundle.js 上,根本没法看逻辑。

实操建议:

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

MemFree
MemFree

MemFree - 来自知识库和互联网的混合AI搜索,更快获取准确答案

下载
  • 确保构建配置中开启了 devtool: 'source-map'(Webpack)或 build.sourcemap: true(Vite)
  • 在已加载的脚本中右键选择 Blackbox script 可跳过第三方库的断点,避免误停
  • 用条件断点更精准:右键断点 → Edit breakpoint → 输入表达式如 id === 123
  • 临时禁用所有断点用快捷键 Ctrl+Shift+F8(Win/Linux)或 Cmd+Shift+F8(Mac)

console.log 不够用时,该用哪些调试 API

console.log 容易污染代码、漏删、性能差;真正调试时应优先用 debugger 语句和结构化日志 API。

实操建议:

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

  • 在关键位置插入 debugger;,它会在运行到此处时自动触发 DevTools 断点(前提是 DevTools 已打开)
  • console.table(data) 查看数组或对象,比 console.log 更清晰
  • console.group('API') + console.groupEnd() 折叠日志块,适合追踪流程分支
  • 避免在循环里写 console.log(i),改用 console.count('loop') 统计执行次数

Performance 面板怎么抓一次真实的页面卡顿

不能只看 FPS 数字——它可能掩盖长任务(Long Task)或布局抖动(Layout Thrashing)。真实卡顿往往来自 JS 执行阻塞主线程,或频繁强制同步布局。

实操建议:

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

  • 录制前勾选 NetworkScreenshots,便于关联请求与帧画面
  • 操作页面后按 Ctrl+E(Win/Linux)或 Cmd+E(Mac)停止录制,再点顶部 Bottom-Up 标签看耗时最长的调用
  • 重点关注 Scripting 分类下的黄色/红色长条,右键 → Reveal in Sources 直跳源码
  • 若发现大量 LayoutRecalculate Style,检查是否在循环中读取了 offsetHeightgetComputedStyle 等触发重排的属性

为什么 performance.mark() + performance.measure() 比 Date.now() 更准

Date.now() 受系统时间调整、毫秒精度限制影响,而 performance.mark() 基于高精度时间戳(通常精确到微秒),且不会被系统时钟漂移干扰,是测量函数执行、资源加载的真实首选。

实操示例:

performance.mark('api-start');
fetch('/api/data').then(() => {
  performance.mark('api-end');
  performance.measure('api-duration', 'api-start', 'api-end');
  // 测量结果可通过 performance.getEntriesByName('api-duration') 获取
});

注意点:

  • 标记名必须是字符串,且不能含空格或特殊字符
  • 同一标记名重复调用 performance.mark() 会覆盖前一次,如需多次测量请用唯一 ID(如 api-start-${Date.now()}
  • performance.clearMarks()performance.clearMeasures() 要及时清理,否则历史数据会累积影响分析
实际调试中最容易被忽略的是:断点打了却没确认当前执行上下文是否匹配(比如异步回调里的 this 或闭包变量),以及 Performance 录制时忘了关掉其他标签页——它们的后台脚本会干扰主线程采样。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

1051

2023.08.11

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

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

831

2023.11.06

chrome什么意思
chrome什么意思

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

1051

2023.08.11

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

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

831

2023.11.06

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

203

2023.11.20

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

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

739

2023.08.03

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

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

220

2023.09.04

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

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

1564

2023.10.24

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

24

2026.03.09

热门下载

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

精品课程

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

共48课时 | 10.4万人学习

Git 教程
Git 教程

共21课时 | 4.1万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号