前端开发中,定位bug的几种常用方法

目录

第一章 前言

第二章 解决bug的方法

2.1 百度

2.2 有道翻译

2.3 debugger

2.4 console.log 日志打印

2.5 请求体是否携带参数

2.6 注释页面渲染代码

2.7 其他

第三章 尾声

备注:该文章只是本人在工作/学习中常用的几种方法,如果有不对大家“胃口”的地方,勿喷,可以在评论区提供新的方法,一起学习!!!

第一章 前言

        原因:bug对于我们前端来说在很多时候都是存在的,为什么这么说呢,因为我们前端用到的东西都比较杂乱,而且有的bug时在某些情况下才出现的,所以需要我们不定时的解决;我们会用到各种各样的组件不同的方法、原生js、数据类型、获取数据的时机、逻辑结构、渲染层等等都会是我们最后问题出现的地方。那我们需要怎么定位问题呢,接下来看看我的几个方案,如果你也是新手,或许也会有一定的收获!!

第二章 解决bug的方法

2.1 百度

        别笑,百度对于我们程序员来说也是一个工具,我们可以将报的错去百度上搜索,肯定会有人出现过类似的情况,那么我们就可以大致定位到在哪里出现的问题。

2.2 有道翻译

        为什么要用到有道翻译呢,有的时候百度上的结果不一定对我们有用,那么我们在检查bug之前必须知道这个报错的大致意思是什么,才能方便我们定位

2.3 debugger

        在我们想要打断点的代码后面写debugger,然后我们在浏览器调试代码,一步一步调试,然后看代码的那一块逻辑出现的问问题 (对于新手来说个人不是很推荐这个方法,需要耐心,调试过程中进入到了一些底层代码的时候我们会不知所措,但也是一种方法吧)

  • 想打断点的代码后面写debugger

  •  浏览器上运行,注意要刷新浏览器

 留意代码执行顺序:

2.4 console.log 日志打印

        该方法不管是对于新手还是工作好几年的人来说都是一个解决bug很方便的方法,很友好,通过打印结果来定位我们的代码逻辑是在哪个点、哪一块出现问题了。养成console.log打印日志的习惯,虽然麻烦在之后软件发行的过程中我们需要删除,但确实很好用。

例子:

 

2.5 请求体是否携带参数

         前面的方法基本上都是针对我们前端自身的,该方法就是针对我们与后端对接的时候了,我们传参的时候要有携带的请求头、请求体、Content-Type,看看是否都携带完全了、正确了,当我们这些参数都携带上了然后报错,再看是不是后端的问题

  • 先了解一下用到的几个模块

  •  掌握响应标头(理解框的这几条就够了)

  •  掌握请求标头(理解框的这几条就够了)

  •  掌握怎么看载荷(也就是请求携带的参数)

  • 预览和响应都是后端给我们返回的数据(看其中一个就行 )

 

用响应数据的时候,给大家一个看后端返回的数据结构链接,很实用

JSON在线校验格式化工具(Be JSON)

  •  必须知道的几个请求数据报错的状态码

200 :这是一个最常见的状态码, 表示访问成功
301 :永久性重定向(被请求的资源已永久移动到新位置,重新定位路径)
302 :临时重定向
401 :未经授权
403 :表示访问被拒绝. 有的页面需要用户具有一定的权限才能访问(登陆后才能访问)
404 :没有找到资源
405 :方法不支持,服务器列表不包含请求方法
500 :服务器内部错误,一般是服务端出错

----- 详细可看我的另一个文章

AJAX及其相关知识应用(很详细)_ajax中间件_❆VE❆的博客-CSDN博客

2.6 注释页面渲染代码

        这个方法整体来说是比繁琐的,意思就是当报的错不是特别明显或者是内部组件的错误,我们肉眼找不到对应的组件在哪,这个时候,我们把所有的页面相关代码(html)全部注释掉,肯定就不会报错了,然后我们再一步一步的展开每一个页面块,由父元素到子元素的展示,兄弟元素不影响,一点一点来,当展示某一个元素时,控制台报错了,那么就说我bug很可能就在这个元素所用到的方法或者父元素用到的方法,我们逐层分析,看是哪一个方法导致的报错,之后解决它就好了。

我遇到的例子:

看这篇文章:[Vue warn]: You may have an infinite update loop in a component render function_❆VE❆的博客-CSDN博客

2.7 其他

        还有一些就是原生js方法的报错、字符校验、格式校验、判断、组件报错、数据是否没获取到、配置问题……这些就需要我们慢慢的积累了。

第三章 尾声

        解决bug不是一下两下我们就能定位到的,需要的是我们的耐心,逐步发现问题所在,解决问题。我们不是什么都会,是在学习中进步,加油吧!!

        如果有哪位读者也有什么想提供的方法,欢迎评论区留言!!

        最后,给我们程序员一句话:最值得欣的景,其实是自己奋斗的足迹;最值得炫耀的是,我们通过奋斗所获取的成果!!加油吧,少年!!

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

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

相关文章

朋友去华为面试,轻松拿到30K的Offer,羡慕了......

最近有朋友去华为面试,面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试,要不是他面试前做足准备,估计都坚持不完后面几轮面试。 其实&…

第四十六章 Unity 布局(上)

学习了UI元素的使用,并不能构建出一个完整的UI界面,我们需要使用一些方法将这些UI元素按照“设计稿”的效果,将其摆放到对应的位置上。如何摆放这些UI元素,就是我们需要讲的“布局”,当然这需要借助一些布局组件来完成…

毕业论文相关

毕业论文参考文献和Word保存 一、Word中出现[7-9]多个文献的引用 在正文中选中参考文献角标,右击选择“切换域代码”,参考文献角标[7][8][9]变为{ REF _Ref98345319 \r \h * MERGEFORMAT }{ REF _Ref98345321 \r \h * MERGEFORMAT }{ REF _Ref99390603…

第5章 负载均衡

第5章 负载均衡 5.1 proxy_pass详解 在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。 假设下面四种情况分别用 http://192.…

Java并发编程实践学习笔记(三)——共享对象之发布和异常

目录 1 公共静态变量逸出 2 非私有方法逸出私有变量 3 this引用逸出 4 构造函数中的可覆盖方法调用逸出 发布(publishing)一个对象的意思是:使对象能够在当前作用域之外的代码中使用。例如,将一个指向该对象的引用保存到其他代…

InnoDB线程模型

新版本结构演变 MySQL 5.7 版本 将 Undo日志表空间从共享表空间 ibdata 文件中分离出来,可以在安装 MySQL 时由用户自行指定文件大小和数量增加了 temporary 临时表空间,里面存储着临时表或临时查询结果集的数据Buffer Pool 大小可以动态修改&#xff0…

你不知道的自动化?使用自动化测试在项目中创造高业务价值...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 脱离数据支撑谈价…

GRPC - JAVA笔记

GRPC - JAVA笔记 gRPC简介 由google开源的一个高性能的RPc框架,由google内部的Stubby框架演化而来。2015年正式开源。云原生时代的RPC标准,由Go语言开发 gRPC的核心设计思路 网络通信 ------> gRPC 自己封装了网络通信的部分,提供了多种…

VS2022编译libiconv-1.17

需求概述 获得最新版本的windows下可用的libiconv静态库。 解决方案 概述 使用VS2022编译libiconv-1.17。需要对源码手动进行配置。 本文所述的方法同样适用于动态库,并且理论上适用于VS2010~2022所有版本。 如果你不在乎libiconv的版本,可以参考 …

Redis缓存

就先不连接数据库了 我们测试缓存 实体类: Data AllArgsConstructor NoArgsConstructor public class User implements Serializable {private int id;private String name;private String sex;private String addr; } service: Service public…

小家电LED显示驱动多功能语音芯片IC方案 WT2003H4 B002

随着时代的进步,智能家电的普及已经成为了一个趋势。而在智能家电中,LED显示屏也成为了不可或缺的一部分。因此,在小家电的设计中,LED显示驱动芯片的应用也越来越广泛。比如:电饭煲、电磁炉、数字时钟、咖啡机、电磁炉…

java版spring cloud 企业电子招投标采购系统源码之首页设计

随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审计监督要…

“正大杯”第十三届市场调查与分析大赛[省一]经验总结+复盘

目录 1 前期组队 2 队员组成 队长-成员1 应用统计学专业 成员2 化学实验专业 成员3-本人 物联网工程专业 成员4 金融ACCA专业 成员5 应用物理学 总结 3 比赛进度 3月中旬 部分图表的制作 问卷设计与制作 稍微改动主题 问卷相关总结 前期调查部分论文框架 3月…

怎么把webp文件转换为jpg?这几种方法值得学习!

怎么把webp文件转换为jpg,我想这样的问题对于那些和图片打交道不多的人来说确实有些困难吧。在我们要处理这个问题之前,我们先来了解一下图片格式webp吧。要是知道Youtube、Gmail、Google Play 中都可以看到 WebP 的身影,而 Chrome 网上商店甚…

高阶python | 堆栈列表:RPN应用(模拟逆波兰式功能实现)

python版本:3.10 在列表中,append和pop方法有一个特殊的用途。可以在列表上使用这两个方法让列表变成一个堆栈使用。 这就是一个栈,它是先进后出,类似单门轿厢电梯一样的设计,出入口共用 堆栈最有用的应用之一就是做逆…

如何解决请求参数为JSON时,采用IO流读取,只能请求一次的问题?

如何解决请求参数为JSON时,采用IO流读取,只能请求一次的问题? 一、错误演示1. 创建项目,添加所需依赖2. 配置redis环境3. 写一个简单的测试请求4. 写一个拦截器,拦截请求5. WebConfig 注册拦截器6. 测试请求 二、问题解…

VR全景园区:数字化旅游业的新未来

VR全景园区是未来数字化旅游业的一种新兴形式。它利用高清晰度的3D图像和360度全景拍摄技术,将景区中的自然风光、历史文化和人文风情等元素呈现在游客面前。VR全景园区不仅可以为游客提供身临其境的参观体验,还可以有效地推广当地的文化和旅游资源。 【…

调试和优化遗留代码

1. 认识调试器 1.1 含义 一个能让程序运行、暂停、然后对进程的状态进行观测甚至修改的工具。 在日常的开发当中使用非常广泛。(PHP开发者以及前端开发者除外) 1.2 常见的调试器 Go语言的自带的 delve 简写为 “dlv”GNU组织提供的 gdbPHP Xdebug前端浏览器debug 调试 1.3…

English Learning - L3 作业打卡 Lesson2 Day8 2023.5.12 周五

English Learning - L3 作业打卡 Lesson2 Day8 2023.5.12 周五 引言🍉句1: The color green is natural for trees and grass.成分划分弱读语调 🍉句2: But it is an unnatural color for humans.成分划分弱读连读语调 🍉句3: A person who h…

1.SpringBoot基础篇

SpringBoot 文档更新日志 版本更新日期操作描述v1.02021/11/14A基础篇 前言 ​ 很荣幸有机会能以这样的形式和互联网上的各位小伙伴一起学习交流技术课程,这次给大家带来的是Spring家族中比较重要的一门技术课程——SpringBoot。一句话介绍这个技术,…