2023前端调试技巧

简介: 2023前端调试技巧

前端工作中,不仅编码很重要,重现bug,解决bug的能力同样重要。而这些都离不开代码调试。

大厂面试题分享 面试题库

前端面试题库 (面试必备) 推荐:★★★★★

地址:前端面试题库

PC调试


  • console.log()

在你觉得有问题的代码处,加上一句 console.log() 就好了。然后在开发者工具控制台就可以看到你打印出来的东西了。

  • 断点调试
  • debugger 语句
    在代码中添加 debugger 语句,当代码执行到该语句的时候就会自动断点。

我们需要关注上图红色方框内的七个按钮。从左到右依次标记为a,b,c,d,e,f,g。

  • a: Pause/Resume script execution:暂停/恢复脚本执行(程序执行到下一断点停止),快捷键F8。
  • b: Step over next function call:逐语句执行(跳到下一行),快捷键F10。
  • c: Step into next function call:进入当前函数,快捷键F11。
  • d: Step out of current function:跳出当前执行函数,快捷键F11+Shift。
  • e: Step 和b的作用一致,快捷键F9
  • f: Deactive/Active all breakpoints:关闭/开启所有断点。
  • g: Pause on exceptions:异常情况自动断点设置。

此时,我们在 Scope 面板中可以看到该作用域下变量和函数的信息(鼠标悬浮在对应的变量上也可以看到)方便我们排查问题。

  • 手动断点
    打开开发者工具的 source 面板,在左侧目录树中找到对应的JS文件,在右侧对应文件的行号上单击即可实现断点的添加和删除。在添加断点之后,代码就会在断点处停止执行。

事件断点

在上图中点击 Event Listener Breakpoints ,然后选择我们需要监听的事件。之后当该事件被触发时,浏览器会帮我们自动在相应的js文件代码处打上断点。举个例子:我想在百度首页输入框中输入时,进行断点调试,就可以使用该功能。

请求断点

在上图中点击 XHR/fetch breakpoints ,然后添加对应的请求URL,之后当该请求发送的时候,就会自动断点。还是用百度举例:添加一个请求URL断点,然后刷新页面。

Dom 断点

我们还可以对指定的 dom 节点进行断点设置,根据设置类型的不同,浏览器会在 dom 节点属性变化,子树变化,节点被移除三个时机帮我们进行断点。还是用百度举例:在指定 dom 节点上右击,选择 Break on ,选择对应的时机进行设置

  • 动画调试

工作中肯定会遇到调试动画的场景,为了调试动画,经常一遍又一遍的刷新页面,其实大可不必,有更简单的办法。

  1. 打开开发者面板,开启命令行(Mac: Command+Shift+P ,Windows:Control+Shift+P

输入 Animations ,选择 Show Animations,打开动画检查器

之后在页面发生的动画都会被其捕获,我们就可以在动画检查器中调试动画了

区域1:控制动画的速度和播放;

区域2:捕获的页面动画;

区域3:动画的时间线;

区域4:动画的实现细节;

我们可以很方便的在这里将动画调试到满意的程度,然后复制对应的动画属性参数到代码中。

移动端H5调试


移动端H5本地调试和PC调试完全一样,我们在此讨论的是在webview中如何调试。

  • vConsole

移动端H5页面运行在App的 webview 内,没有开发者工具可以让我们方便的调试(比如查看log,抓网络请求,查看cookie,Ua等等);因此 vConsole 等这类调试工具就产生了,让我们的调试变得方便了很多。

  • 手机连接电脑

有了vConsole这类调试工具以后,基本上能解决大部分调试问题了。但还是存在一些情况,我们必须进行真机调试。比如在部分机型上页面直接白屏,vConsole还没有进行加载等等

大致步骤如下:

1: 手机连接电脑2: 手机打开开发者选项,允许USB调试3: 电脑打开 chrome://inspect4: 手机打开App内的H5页面5: 此时电脑端 chrome://inspect 页面会出现手机端页面的信息,点击 inspect 打开开发者面板即可复制代码
  • 模拟器

实际工作中经常会出现用户的机型页面有问题,而我们因为各种原因并没有该用户对应的机型,这个时候模拟器就派上用场了。

node调试


Node 调试工具入门教程 推荐一下阮老师的文章,简单易懂。

简单说就是 node --inspect-brk xxx.js + chrome://inspect

举个例子,比如我想在 vue.config.js 中设置 cacheGroups,然后写了对应的正则或者 test 函数,但是打包之后的产物不符合预期,我想知道是哪里出了问题,此时就得调试打断点。

1. node --inspect-brk node_modules/.bin/vue-cli-service build
2. 打开浏览器,输入chrome://inspect  找到对应的target,然后inspect3. 在vue.config.js 设置断点,进行问题排查
复制代码

vscode调试


node

我们会发现上面调试node还是有点麻烦的,但是如果在编辑器中调试就很简单了。

方法一:首先在对应文件行号左边单击,打上相应的断点;打开调试终端,直接运行命令。

比如直接在 vue.config.js 中打上断点,然后打开调试终端,运行 npm run build

方法二:打开运行和调试侧边栏,选择 Node.js 调试器

以上就是我们前端开发中经常用到的调试技巧,每种技巧都有对应的使用场景,不足之处,大家评论区多多补充,一起学习。

大厂面试题分享 面试题库

前端面试题库 (面试必备) 推荐:★★★★★

地址:前端面试题库

相关文章
|
6月前
|
前端开发
调试前端时,在浏览器上修改参数并重新调用接口
有时候我们的页面点击过了,但是接口出问题,想修改参数再调用一次,一般是用apiPost工具把接口复制,再加上token和参数,但是这样非常的效率比较低。
681 0
|
6月前
|
缓存 前端开发 JavaScript
【第22期】 一文读懂前端调试利器whistle
【第22期】 一文读懂前端调试利器whistle
124 0
|
前端开发 Java
前端基础 - 常用调试方式
前端基础 - 常用调试方式
71 0
|
Web App开发 前端开发 JavaScript
VSCode如何设置Vue前端的debug调试
VSCode如何设置Vue前端的debug调试
831 0
|
4月前
|
Web App开发 前端开发 JavaScript
前端必备的浏览器调试技巧
【7月更文挑战第18天】 Chrome开发者工具是前端调试的关键,包括快捷键Ctrl+Shift+I/Cmd+Option+I打开它,DOM和CSS调试如编辑元素、样式,JS调试如断点、条件断点和监视变量,网络请求分析,性能评估如Lighthouse和性能面板,及截图、模拟设备等实用技巧,助力开发者提升效率。
125 1
|
4月前
|
Web App开发 存储 监控
如何使用 Chrome DevTools 进行前端性能监控和调试?
如何使用 Chrome DevTools 进行前端性能监控和调试?
|
6月前
|
Web App开发 JavaScript 前端开发
【专栏】如何使用 Chrome DevTools 的断点功能提升前端调试效率, 花式打断点
【4月更文挑战第29天】本文介绍了如何使用 Chrome DevTools 的断点功能提升前端调试效率。从基本的行断点和函数断点,到更高级的条件断点、DOM 断点、XHR 断点和事件断点,以及代码注入断点,详细阐述了各种断点的设置和应用场景。通过断点调试实战案例,如异步操作、复杂逻辑和性能优化,展示断点在解决实际问题中的重要作用。掌握这些技巧能有效提高开发质量和效率。
440 1
|
6月前
|
前端开发 数据处理 Android开发
【Flutter 前端技术开发专栏】Flutter 中的调试技巧与工具使用
【4月更文挑战第30天】本文探讨了Flutter开发中的调试技巧和工具,强调其在及时发现问题和提高效率上的重要性。介绍了基本的调试方法如打印日志和断点调试,以及Android Studio/VS Code的调试器和Flutter Inspector的使用。文章还涉及调试常见问题的解决、性能和内存分析等高级技巧,并通过实际案例演示调试过程。在团队协作中,有效调试能提升整体开发效率,而随着技术发展,调试工具也将持续进化。
91 0
【Flutter 前端技术开发专栏】Flutter 中的调试技巧与工具使用
|
6月前
|
监控 前端开发 JavaScript
如何使用浏览器调试前端代码?
【4月更文挑战第11天】前端开发中,浏览器调试是关键技能,能提升代码质量。本文介绍了如何使用浏览器的调试工具:1) 打开调试窗口(F12或右键检查);2) Elements标签页检查DOM结构和样式;3) Console调试JavaScript,查看日志和错误信息;4) Sources设置断点调试JS文件;5) 利用Network、Performance和Memory等标签页优化性能。熟悉调试工具、利用日志和错误信息能有效定位问题,提高开发效率。
402 7
|
前端开发
前端学习笔记202307学习笔记第五十六天-搭建react源码调试环境2创建环境
前端学习笔记202307学习笔记第五十六天-搭建react源码调试环境2创建环境
60 0