前言
不知道开发调试的程序员不是一个好的程序员,下面讲讲常用的开发调试技巧.
浏览器调试
(谷歌开发者工具为例)
Element(元素)
在网页中如何选中元素?
- 点击小箭头可以
- 直接在该元素上鼠标右键选择检查
当要保持某个元素的伪类状态如:hover时,可进行如下操作(2种方案)
搜索想要调试的样式类名
Console(控制台)
console家族:
console.log('log')
console.warn('warn')
console.error('error')
console.debug('debug')
console.info('info')
//
console.log('%s %o,%c%s', 'hello', { name: 'hi', age: 12 }, 'font-size: 24px; color: pink', 'selfStyle log')
效果图:
其中最后一行代码的'%s %o,%c%s'
是占位符,可以给日志添加样式,以突出重要信息
%s:字符串占位符;%对象占位符;%c样式占位符;%d:数字占位符
const obj = [
{
name: '张三',
age: 18,
sex: '男'
},
{
name: '李四',
age: 28,
sex: '男'
},
{
name: '王五',
age: 180,
sex: '男'
}
]
// 具象化的展示JSON和数组数据
console.table(obj)
// 通过类似文件树的方式展示对象的属性
console.dir(obj)
效果:
Source(源代码)
tab页面;
-
页面资源文件目录树
-
代码预览区域
-
Debug工具栏(从左往右依次为)
- 暂停(继续)
- 单步跳过
- 进入函数
- 跳出函数
- 单步执行
- 激活(关闭)所有断点
- 代码执行异常处自动
-
断点调试器
断点调试:
使用关键字debugger 或代码预览区域的行号可以设置断点
执行到断点处时代码暂停执行
展开Breakpoints列表可以查看断点列表,勾选/取消可以激活/禁用对应断点
暂停状态下,鼠标hover变量可以查看变量的值
在调试器Watch右侧点击+可以添加对变量的监控,查看该变量的值
闭包(Scope)和调用栈(Call Stall)
Network(网络)
区域1:控制面板
区域2:过滤面板
区域3:概览区域
区域4: Request Table面板
区域5:总结面板
区域6:请求详情面板
Application(应用)
Application面板展示与本地存储相关的信息:
本地存储:
- Local Storage
- session Storage
- IndexedDB
- Web SQL
- Cookie
关于它们的区别用法我会在另一章节中讲到!
Performance(性能)
区域:控制面板
区域2:概览面板
- FPS:每秒帧数
- CPU:处理各个任务花费的时间
- NET:各个请求花费时间
区域3∶线程面板
- Frames:帧线程
- Main:主线程,负责执行Javascript,解析HTML/CSS,完成绘制
- Raster: Raster线程,负责完成某个layer或者某些块(tile)的绘制。
区域4:统计面板
Lighthouse(灯塔)
Lighthouse是一个由Google开发的自动化工具,可以帮助评估web应用的质量。它执行一系列针对不同方面的测试,包括性能、可访问性、最佳实践等,并生成综合报告。
使用Lighthouse:
- 打开Chrome开发者工具
- 选择Lighthouse选项卡
- 点击Generate report生成报告
Lighthouse将生成一个综合报告,其中包含各种性能指标和建议。
核心Web指标:
Largest Contentful Paint (LCP):最大内容绘制,测量加载性能。为了提供艮好的用内户体验,LCP应在页面首次开始加载后的2.5秒内发生。
First Input Delay (FID):首次输入延迟,测量交互性。为了提供良好的用户体验,页面的FID应为100毫秒或更短。
Cumulative Layout Shift (CLS):累积布局偏移,测量视觉稳定性。为了提供良好的用布户体验,页面的CLS应保持在0.1.或更少。
Debugger
除了谷歌开发者工具,大多数浏览器还提供了内置的调试器。调试器帮助开发人员诊断和解决JavaScript错误,以及对代码进行单步调试。
使用调试器:
- 打开浏览器开发者工具
- 选择调试器选项卡
- 找到您想要调试的JavaScript文件
- 在要调试的行上添加断点
- 刷新页面并开始调试
调试器将暂停代码执行,并允许您检查变量、调用堆栈和其他调试信息。
总结
浏览器开发工具是每个前端开发人员必须掌握的工具之一。通过使用它们,您可以轻松地诊断和解决问题,使您的应用程序更加可靠和高效。