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

news2024/11/25 2:24:56

目录

第一章 前言

第二章 解决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.coloradmin.cn/o/519951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧园区移动应用发展面临瓶颈,如何解决?

智慧园区移动应用将在多元化服务、生态建设、智能化管理和跨界融合等方面发展,成为园区管理和服务的重要手段之一,为员工和企业提供更加智能化和便捷化的管理和服务。伴随着智慧城市的建设和智慧园区的崛起,智慧园区数字一体化建设成为园区发…

docker搭建nginx负载均衡

一点小背景 docker起了几个服务,没有配置端口映射,导致不能通过网络访问。当然,更简单的方式是加端口映射,笔者的情况更复杂一些,就想到了用nginx映射一下。 Nginx(发音同“engine X”)是异步框…

避免“文献综抄”,5种写作结构助你完成文献综述→

很多作者可能有过这样的体验:读了很多文献,但在写综述的时候总感觉不像是在写文献综述,更像在写文献总结 如果引用方面不注意,甚至会成为文献综抄。 那么,你可以参考下我们整理的以下资料哦~ 01 文献总结和文献综述的…

DCDC反馈电阻的阻值如何取值?

DCDC芯片的反馈电阻 下图为我们公司现在常用的两款DCDC芯片,TPS54335ADDA/TI和LMR14050SDDA/TI。 其中RFBT和RFBB都是反馈电阻,可以通过调节这两个电阻的比值来输出 预期电压。 FBT:feedback top&a…

保姆级丨XAMPP安装使用

0x00 前言 XAMPP 是一个完全免费,易于安装的 Apache 发行版,包含 MariaDB , PHP 和 Perl 。 XAMPP 开源软件包已经设置为非常容易安装和使用。 0x01 环境说明 Windows 11xampp-windows-x64-8.2.4-0-VS16-installer 0x02 准备工作 首先要访问…

数据库分区;pgAdmin操作pgsql分区;修改pgsql数据库名字

目录 分区 什么是分区 分区的优势 pgAdmin操作pgsql分区 创建父表 创建分区 数据入库分区 扩展(按天创建分区脚本) 修改数据库名字 链接 分区 什么是分区 指将一个大的表或索引分成多个小的、独立的部分,每个部分称为一个分区&#x…

带你了解家居智能的心脏:物联网关

本文将介绍家庭物联网关的相关内容,将明白物联网关在家庭这个场景当中的应用。现在市面上各种各样的智能家居的家电或者其他设备非常多,那么这就需要一个智能的设备去对所有的家电进行管控。这样一个设备就是家庭智能网关,家庭物联网关是家居…

Py之onnx:onnx/onnxruntime库的简介、安装、使用方法之详细攻略

Py之onnx:onnx/onnxruntime库的简介、安装、使用方法之详细攻略 目录 onnx/onnxruntime库的简介 onnx/onnxruntime库的安装 onnx/onnxruntime库的使用方法 1、基础用法 onnx/onnxruntime库的简介 Open Neural Network Exchange(ONNX)是一…

Python每日一练(20230513) 粉刷房子 I\II\III Paint House

目录 1. 粉刷房子 Paint House 2. 粉刷房子 II Paint House-ii 3. 粉刷房子 III Paint House-iii 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 leetcode题号分别为: 256、2…

32 位 ARM® Cortex®-M0+ 单片机,PY32F002B 系列微控制器

PY32F002B 系列微控制器采用高性能的 32 位 ARM Cortex-M0内核,宽电压工作范围的 MCU。嵌入24Kbytes Flash 和 3Kbytes SRAM 存储器,最高工作频率 24MHz。包含多种不同封装类型多款产品。 芯片集成I2C、SPI、USART 等通讯外设,1 路 12bit ADC…

UNIAPP实战项目笔记70 购物车删除商品的前后端交互

UNIAPP实战项目笔记70 购物车删除商品的前后端交互 思路 需要用到vuex 传id值到后端,删除指定id购物车数据 案例截图 购物车商品编辑页面 代码 后端代码 index.js var express require(express); var router express.Router(); var connection require(../db/sql.js); va…

6.Go语言学习笔记-结合chatGPT辅助学习Go语言底层原理

1、Go版本 go1.14.15 2、汇编基础 推荐阅读:GO汇编语言简介 推荐阅读:A Quick Guide to Gos Assembler - The Go Programming Language 精简指令集 数据传输: MOV/LEA 跳转指令: CMP/TEST/JMP/JCC 栈指令: PUSH/POP 函数调用指令: CALL/RET 算术指令: ADD/SUB/MUL/DIV …

PFCdocumentation_FISH Rules and Usage

目录 FISH Scripting FISH Rules and Usage Lines Data Types Reserved Names for Functions and Variables Scope of Variables Functions: Structure, Evaluation, and Calling Scheme Arithmetic: Expressions and Type Conversions Redefining FISH Functions Ex…

hadoop03

MapReduce是Hadoop系统核心组件之一,它是一种可用于大数据并行处理的计算模型、框架和平台,主要解决海量数据的计算,是目前分布式计算模型中应用较为广泛的一种。 练习:计算a.txt文件中每个单词出现的次数 hello world hello ha…

Android View 事件分发机制,看这一篇就够了

在 Android 开发当中,View 的事件分发机制是一块很重要的知识。不仅在开发当中经常需要用到,面试的时候也经常被问到。 如果你在面试的时候,能把这块讲清楚,对于校招生或者实习生来说,算是一块不错的加分项。对于工作…

三种方式在HTML使用阿里字体图标--iconfont阿里巴巴矢量图标库

好久没用到阿里巴巴的图标,突然要用到就发现不会用了,只会导出png格式的图标png了 目录 1、字体图标 方法一、本地使用通过类名使用阿里矢量图标 1、把图标添加入库 2、把图标添加到项目 3、下载字体图标 4、使用文件 5、在对应的HTML页面上引入…

瑞吉外卖项目笔记01——环境搭建、后台登录功能

1.1 数据库 数据库&#xff1a; 创建一个空白数据库reggie&#xff0c;然后导入执行SQL文件创建的表如下&#xff1a; 1.2 项目依赖 项目依赖&#xff1a; pom.xml文件内的依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"…

国外APP项目的上线流程

现在很多创业者希望自己的项目能走出国内&#xff0c;向全球各地发展&#xff0c;尤其对于一些通用APP来说&#xff0c;国外可以增加一个新的收入渠道。比如常见的出海APP有小型游戏、手机清理、杀毒软件等等&#xff0c;这些类型的APP在全球的使用基本都是一样的&#xff0c;因…

Lucene(1):Lucene介绍

Lucene官网&#xff1a; http://lucene.apache.org/ 1 搜索技术理论基础 1.1 lucene优势 原来的方式实现搜索功能&#xff0c;我们的搜索流程如下图&#xff1a; 上图就是原始搜索引擎技术&#xff0c;如果用户比较少而且数据库的数据量比较小&#xff0c;那么这种方式实现搜…

Lucene(2):Lucene全文检索的流程

1 索引和搜索流程图 &#xff08;1&#xff09;绿色表示索引过程&#xff0c;对要搜索的原始内容进行索引构建一个索引库&#xff0c;索引过程包括&#xff1a; 确定原始内容即要搜索的内容 获得文档创建文档分析文档索引文档 &#xff08;2&#xff09;红色表示搜索过程&…