我终于学会的前端技能——代码调试、打断点

在技术的世界里,要用魔法来打败魔法

说来惭愧我做前端已近三年了竟然还没有学会如何调试代码,也就是给自己的代码打上断点一步步看它的运行状态以达到理清代码运行逻辑、排查问题提升开发效率的目的。直到最近我才学会了这一技能,在这之前我用的还是在代码中用console.log的方式去调试,使用这种方法也不是不好,在大多数情况下它绝对适用,如果遇到稍微复杂点的代码执行逻辑console.log就显得力不从心了。根据我的经验来看使用console.log的优点是:简单便捷,比如你想查看某个变量的最新状态或者是查看从服务端返回的最新数据,你只需要在自己的代码中通过console.log将其打印出来即可,然后你在浏览器控制台中就能看见打印的效果。缺点是:让代码看上去混乱,比如我为了调试某段代码而写了很多个console.log而调试完之后我又忘了将它们删除,往往我就是这样的一个人,放眼望去代码中到处是console.log看上去很乱;再一个就是如果是复杂逻辑并不适用console.log例如复杂的条件语句、一个方法的执行依赖其他方法,这些显然无法胜任,因为无法看到代码每一步的执行状态。我觉得作为一名合格的前端一定要掌握前端调试的技能,会了调试你的开发效率就会提高,而且如果想进阶看一看框架源码的话调试技能也是必备的。

我是如何学会前端调试的?

我经常看到别人调试代码的时候就好羡慕咔咔咔一顿操作感觉好厉害啊,可自己就是学不会不善于使用断点的方式调试代码,觉得这玩意儿操作起来好复杂,还不如我的console.log用的顺手呢,就这样我一直呆在自己的舒适区,直到有一天我接触到了源码相关的知识方才意识到学会调试的重要性,后来我在掘金上买了前端调试的小册开始了我的前端调试之路。也是在最近一周我学会了调试的技能,学完之后就立刻派上了用场,断点调试其实也没有想象的那么复杂,你在需要断点的位置打上一个断点就行然后代码执行到哪里就会自动的进入断点的,在断点上你可以查看变量的值,参数的最新状态等等。遇到问题后一个断点就能快速的定位到问题所在。

如何进行前端代码调试?

我开发使用的是vue3所以就以vue3项目为例来开启一个调试,首先用VSCode打开一个vue3项目,在左侧侧边栏找到点击调试按钮,点击创建一个launch.json调试配置文件。如果找不到那个调试的按钮可以在侧边栏上鼠标右击在弹出的框中把运行和调试勾上就行了。

然后在弹出的下拉框中选择Chrome会创建一个文件,然后将url改为你自己启动的前端服务即可,比我的前端服务是http://localhost:3000 改为对应的就行了

点击这里会打开一个新的浏览器窗口,就能够开启调试.

上面的几个按钮分别对应的是 :继续执行、单步执行、进入函数调用、跳出函数调用、重启、关闭调试。它是悬浮在vscod中的,如果觉得它挡住了打开的某个文件可以把鼠标放到最左侧六个小方块上面把它移动到别的位置上去,刚开始我还以为它不能动是固定在哪里的呢。

如何打断点?

在你想打断点的代码前面的位置点击一下就能看到一个红色的小点,证明这里已经打上断点了,比如我在main.js文件中这个位置上打了一个断点想看一下orderStatus中都有些什么,然后再点击上面的重启按钮。

此时代码已经在断点处断住了,你就可以在这里查看orderStatus中都有些什么,这样直接在vscode中就可以查看,而不需要频繁切换浏览器与vscode的窗口

在vscode的左侧面板还可以查看当前变量、调用堆栈、断点情况这些信息一目了然,极大地提升了我们的开发效率。这样就能愉快的编写代码边调试了,遇到什么问题一调试便知问题所在。

这东西光看一遍可不行,还是得上手操作才行,在日常工作中将它用起来,所谓熟能生巧嘛!多多练习就能掌握这一技能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/330808.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JSP简单学习

jsp是在html中嵌入java代码 jsp也是在j2ee服务端中的java组件 第一次运行 在第一次运行jsp代码时会经历以下步骤,将jsp转为java代码,将java代码转为class文件。 所以通常会比较慢,编译后就好多了。 四大作用域 requestsessionpageapplica…

CUDA Toolkit 下载,安装,验证

CUDA Toolkit 下载 进cuda官网下载 CUDA Toolkit链接: https://developer.nvidia.com/cuda-downloads 官网默认显示当前的最新版本,这里以安装CUDA Toolkit 12.2 为示例 下载CUDA Toolkit 完成 CUDA Toolkit 安装 开始安装: 点同意&#…

Linux第30步_通过USB OTG将固件烧写到eMMC中

学习目的:在Win11中,使用STM32CubeProgrammer工具,通过USB OTG将固件烧写到eMMC中。 安装软件检查: 1、是否安装了JAVA; 2、是否安装了STM32CubeProgrammer工具; 3、是否安装 了DFU驱动程序; 4、是否安装了“Notepad”软件; …

关于SpringBoot项目整合Log4j2实现自定义日志打印失效原因

主要的原因是因为,SpringBoot的logback包的存在,会导致Spring Boot项目优先实现logback的日志设置,所以导致我们用Log4j2实现自定义日志失效。 先找l哪个包引用了logback包 进入之后查询logback 然后双击包 发现是spring-boot-starter-loggin…

python - 等值线(contour)数值添加白色背景边框

python - 等值线(contour)数值添加白色背景边框 如下图所示,图为NCL官网实力的等值线绘图。可以观察到,图中每条等值线都带有一个白色的矩形边框,使其在黑色的等值线更加清晰明了,更具有可读性。但是,目前我还是用pyt…

基于LDA的评论大数据的分析及主题建模

1.微博的关键词大数据采集; 已完成,待优化 2.LDA 错误1:使用了import pyLDAvis.sklearn,提示没有模块no module named pyldavis.sklearn。 默认安装 pyLDAvis3.4.1,最后降级处理,解决方式: …

云渲染是不是不吃电脑配置?对本地电脑要求高吗?

本地电脑渲染吃力,项目又急着要,没有用过的朋友会搜索: 云渲染对电脑配置要求高不高? 它的答案是:不了你是渲染动画还是效果图,都不吃电脑配置,只要你本地电脑能够做图,能够把项目的…

分析Unity崩溃日志(Android)

Unity版本: 这里Unity版本是Unity 2019.4.30f1 崩溃信息: 错误信息如下: Exception Appversion: versionName 1.0.1 versionCode 1 Process: sg.atla.f.c PID: 22716 UID: 10749 Flags: 0x3088be44 Package: sg.atla.f.c v1 (1.0.1) Fo…

如何判断光模块失效以及光模块应用注意点

1.测试光功率是否在指标要求范围之内,如果出现无光或者光功率小的现象,处理方法: A、检查光功率选择的波长和测量单位 (dbm)。 B、清洁光纤连接器端面,光模块光口。 C、检查光纤连接器端面是否发黑和划伤,光纤连接器是否存在折断&…

HTTP超详细介绍

HTTP讲解 1.HTTP的介绍2.HTTP协议的特点3.HTTP工作原理4.HTTP三点注意事项5.HTTP消息结构6.客户端请求消息7.服务端响应消息8.HTTP请求方法9.HTTP 响应头信息10.HTTP 状态码(HTTP Status Code)10.1.下面是常见的HTTP状态码10.2.HTTP状态码分类10.3.HTTP状…

【USTC】verilog 习题练习 21-25

21 基于端口名称的实例化 题目描述 创建一 verilog 电路,实现对模块 mod_a 基于端口名称的实例化,如下图所示: 其中mod_a模块的代码为: module mod_a (output out1,output out2,input in1,input in2,input in3,in…

如何批量修改图片大小尺寸?分享3个方法

如何批量修改图片大小尺寸?在日常生活中,有时候我们需要将大量的图片上传到社交媒体或应用程序上,而这些平台通常都有图片大小和尺寸的限制。通过批量修改图片大小尺寸,我们可以快速地将多张图片调整为所需的尺寸,节省…

Unity | AudioSource 无声音

Unity | AudioSource 无声音 你是否也会遇到相同的问题?AudioSource没声音? 解决: 注意查看一下几处声音设置:

做了大半年软测,上班接触不到技术性的东西,是在浪费时间吗?

最近接到粉丝私信,苦恼目前的工作状态: 来这个公司大半年,现在主要做的是类似于淘宝的购物商城,以前也做应用系统什么的,可是感觉公司的软件测试岗位都是不着边的,因为做的都是功能测试,来了这么…

Verilog刷题笔记16

题目: Since digital circuits are composed of logic gates connected with wires, any circuit can be expressed as some combination of modules and assign statements. However, sometimes this is not the most convenient way to describe the circuit. Pro…

TA百人计划学习笔记 2.8FlowMap流动效果

资料 源视频 【技术美术百人计划】图形 2.8 flowmap的实现——流动效果实现_哔哩哔哩_bilibili PPT 2800flow map 参考笔记 2.8 flowmap的实现——流动效果实现 语雀UV映射(纹理映射) 对一个贴图进行纹理查找,就要用到uv坐标 理解&#x…

排序算法8----归并排序(非递归)(C)

1、介绍 归并排序既可以是内排序(在内存上的数据排序),也可以是外排序(磁盘上)(硬盘)(在文件中的数据排序)。 其他排序一般都是内排序。 区别于快速排序的非递归&#xf…

Find My相机|苹果Find My技术与相机结合,智能防丢,全球定位

相机是一种利用光学成像原理形成影像并使用底片记录影像的设备,是用于摄影的光学器械。相机让我们能够记录下美丽的风景和珍贵的时刻。当我们到达一个迷人的地方,或者经历了一个特别难忘的时刻时,我们可以使用照相机来拍摄照片,记录下这些美好的回忆。照相机可以帮助…

软件测试面试200问(含答案)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行&a…

数据守护盾牌:敏感数据扫描与脱敏,让安全合规无忧

前言 在信息时代,数据已经成为企业和组织的核心资产,其价值与日俱增。然而,随着数据使用的普及和复杂度的提升,数据安全与合规问题也变得越来越突出。敏感数据的保护显得尤为重要,因为这些数据一旦泄露或被不当使用&a…