那些让我苦笑不得的 Bug:编码之路的坎坷经历

文章目录

    • 1. CSS 中的样式“消失”问题
    • 2. JavaScript 的变量命名引发的混乱
    • 3. 时间格式的困扰
    • 4. 数据库查询条件引发的错误
    • 结语

在这里插入图片描述

🎉欢迎来到Java学习路线专栏~那些让我苦笑不得的 Bug:编码之路的坎坷经历


  • ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹
  • ✨博客主页:IT·陈寒的博客
  • 🎈该系列文章专栏:Java学习路线
  • 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习
  • 🍹文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
  • 📜 欢迎大家关注! ❤️

在编程的世界里,充满了挑战和成就感,但也常常伴随着各种各样的困难和 bug。有时候,我们会遇到一些看似很难解决的问题,费尽心思查找 bug 的原因,然而最后却发现问题的答案是那么的简单,以至于让人忍俊不禁。在这篇文章中,我将分享一些让我困扰良久、后来却发现极为简单的 bug 经历,或许你也曾有过类似的经历,让我们一同笑对这些编码之路上的坎坷。

在这里插入图片描述

1. CSS 中的样式“消失”问题

有一次,我正在开发一个网页,突然发现某个页面元素的样式完全失效了。我检查了代码、查看了浏览器开发者工具,却找不到任何问题。于是,我开始怀疑是不是自己写的 CSS 样式出了什么问题。我仔细查看了代码中的每一行 CSS,也没能找到问题所在。在经历了一番抓狂之后,我决定回到代码的起点,重新检查那个页面元素的样式。

最终,我发现问题不在 CSS 中,而是在 HTML 结构中。在一个父元素上,我设置了 display: flex; 属性,然后在其中的子元素上设置了 width: 100%;。然而,我却忽略了这个子元素的兄弟元素也属于这个父元素,导致在布局时宽度计算出现问题。问题的解决办法很简单,只需给这个子元素添加 box-sizing: border-box; 属性,让它的宽度包含 border 和 padding。

教训:在处理样式问题时,要注意 HTML 结构的影响,有时候 bug 可能并不在 CSS 中。

2. JavaScript 的变量命名引发的混乱

在一个 JavaScript 项目中,我遇到了一个奇怪的 bug,导致某个变量的值始终不正确。我在代码中反复检查这个变量的赋值和使用,但就是找不到问题所在。为了更好地调试,我将这个变量的值打印出来,发现它的值总是 undefined

在一番艰难的排查之后,我终于发现了问题所在:在某处我使用了与这个变量同名的局部变量,覆盖了外部的变量。原来,在 JavaScript 中,如果你在某个作用域内声明了一个变量,而这个变量的名称与外部作用域的变量相同,那么内部的变量会覆盖外部的变量,这就是变量提升导致的问题。

教训:在 JavaScript 中,要注意变量的作用域,避免同名变量导致的意外覆盖。

3. 时间格式的困扰

处理日期和时间总是一个容易让人头疼的问题。有一次,我需要将后端返回的时间字符串转换成特定格式的显示时间。我使用了 JavaScript 中的 Date 对象和相关的方法进行转换,但是最后的结果总是不对,显示的时间总是相差几个小时。

我花费了很长时间检查时区设置、日期格式等问题,但问题依然存在。最后,我发现后端返回的时间字符串已经包含了时区信息,而我在使用 new Date() 构造函数时并没有考虑到这一点。解决问题的方法是使用 Date 对象的 new Date('your-time-string') 形式,确保时区信息被正确解析。

教训:在处理时间时,要确保对时区的处理正确,尤其是涉及到后端返回的时间数据。

4. 数据库查询条件引发的错误

在一个数据库查询的过程中,我使用了一个带有条件的查询语句,但总是得不到正确的结果。

我检查了数据库的数据、查询语句,却找不到问题。在怀疑是不是数据库连接出了问题的时候,我突然意识到问题可能出现在了查询条件的构造上。

原来,我使用了一个条件判断语句,根据前端传递的参数来动态构造查询条件。但是,由于 JavaScript 中存在类型隐式转换,我在判断字符串是否为空时犯了个低级错误。我使用的判断条件是 if (param === ''),这在 JavaScript 中会判定为空。然而,当参数是 undefined 时,这个判断条件同样成立,导致查询条件不准确。

教训:在构造查询条件时,要注意参数的类型,确保条件判断的准确性。

结语

在编码的过程中,遇到 bug 是正常的,而且每个人都会有一些令人啼笑皆非的 bug 经历。这些 bug 不仅是技术上的挑战,更是我们成长的一部分。通过总结和分享这些经历,我们可以更好地理解和规避类似的问题,同时也能够更轻松地面对编程中的种种波折。希望你在编码的路上能够快乐成长,发现 bug 时能够豁然开朗,发自内心地苦笑一番。


🧸结尾 ❤️ 感谢您的支持和鼓励! 😊🙏
📜您可能感兴趣的内容:

  • 【Java面试技巧】Java面试八股文 - 掌握面试必备知识(目录篇)
  • 【Java学习路线】2023年完整版Java学习路线图
  • 【AIGC人工智能】Chat GPT是什么,初学者怎么使用Chat GPT,需要注意些什么
  • 【Java实战项目】SpringBoot+SSM实战:打造高效便捷的企业级Java外卖订购系统
  • 【数据结构学习】从零起步:学习数据结构的完整路径

在这里插入图片描述

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

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

相关文章

了解一下知识付费系统的开发流程和关键技术点

知识付费系统的开发既涉及到前端用户体验,又需要强大的后端支持和复杂的付费逻辑。在这篇文章中,我们将深入探讨知识付费系统的开发流程和关键技术点,并提供一些相关的技术代码示例。 1. 需求分析和规划: 在着手开发知识付费系…

小学生加减乘除闯关运算练习流量主微信小程序开发

小学生加减乘除闯关运算练习流量主微信小程序开发 经过本次更新,我们增加了新的功能和特性,以提升用户体验和运算练习的趣味性: 能量石与激励视频:用户可以通过观看激励视频来获取能量石,这些能量石可以用于解锁收费…

ctfshow 文件上传 151-161

文件上传也好久没做了。。 手很生了 151 前端绕过 只能上传png文件 使用bp抓包,修改文件名后缀为php 上传成功,发现文件上传路径 使用蚁剑连接 找到flag 152 152 后端校验 跟上一关一样 表示后面即使执行错误,也不报错 抓包修改文件…

招投标系统软件源码,招投标全流程在线化管理

功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…

TypeError: Cannot read properties of undefined (reading ‘0‘)

1、在使用<el-dropdown>会报这个错误 原因&#xff1a;使用v-if控制显隐&#xff0c;找不到该节点就会开始报错 解决&#xff1a;使用v-show就可以了

自定义控件封装

上边对两个控件整合时用函数指针是因为QSpinBox::valueChange有重载版本 自定义的接口放在类外 你设计的界面可以通过提升为调用这些接口 添加qt设计师界面类

winform窗体、控件的简单封装,重做标题栏

1标题栏封装中使用了以下技术&#xff1a; 知识点&#xff1a; 1.父类、子类的继承&#xff1b; 2.窗体之间的继承&#xff1b; 3.自定义控件的绘制&#xff1b; 4.多线程在窗体间的应用&#xff1b; 5.窗体和控件的封装&#xff1b; 6.回调函数&#xff08;委托&#xff09;&…

Redis快速入门(基础篇)

简介&#xff1a; 是一个高性能的 key-value数据库。 存在内存中 与其他 key-value 缓存产品有以下三个特点&#xff1a; Redis支持数据的持久化&#xff0c;可以将内存中的数据保持在磁盘中&#xff0c;重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类…

自动备份pgsql数据库

bat文件中的内容&#xff1a; PATH D:\Program Files\PostgreSQL\13\bin;D:\Program Files\7-Zip set PGPASSWORD**** pg_dump -h 8.134.151.187 -p 5466 -U sky -d mip_db --schema-only -f D:\DB\backup\%TODAY%-schema-mip_db_ali.sql pg_dump -h 8.134.151.187 -p 5466…

BUUCTF 面具下的flag 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 下载附件&#xff0c;得到一张.jpg图片。 密文&#xff1a; 解题思路&#xff1a; 1、将图片放到Kali中&#xff0c;使用binwalk检测出隐藏zip包。 使用foremost提取zip压缩包到output目录下 解压zip压缩包&…

python自动化第一篇—— 带图文的execl的自动化合并

简述 最近接到一个需求&#xff0c;需要为公司里的一个部门提供一个文件上传自动化合并的系统&#xff0c;以供用户稽核&#xff0c;谈到自动化&#xff0c;肯定是选择python&#xff0c;毕竟python的轮子多。比较了市面上几个用得多的python库&#xff0c;我最终选择了xlwings…

【自然语言处理(NLP)实战】LSTM网络实现中文文本情感分析(手把手与教学超详细)

目录 引言&#xff1a; 1.所有文件展示&#xff1a; 1.中文停用词数据&#xff08;hit_stopwords.txt)来源于&#xff1a; 2.其中data数据集为chinese_text_cnn-master.zip提取出的文件。点击链接进入github&#xff0c;点击Code、Download ZIP即可下载。 2.安装依赖库&am…

聊聊模糊测试,以及几种模糊测试工具的介绍!

以下为作者观点&#xff1a; 在当今的数字环境中&#xff0c;漏洞成为攻击者利用系统漏洞的通道&#xff0c;对网络安全构成重大威胁。这些漏洞可能存在于硬件、软件、协议实施或系统安全策略中&#xff0c;允许未经授权的访问并破坏系统的完整性。 根据 "常见漏洞与暴露…

在Linux中nacos集群模式部署

一、安装 配置nacos 在Linux中建立一个nacos文件夹 mkdir nacos 把下载的压缩包拉入刚才创建好的nacos文件中 解压 tar -zxvf nacos-server-1.4.1\.tar.gz 修改配置文件 进入nacos文件中的conf文件的cluster.conf.example 修改cluster.conf.example文件 vim cluster.conf.exa…

Django(六、模板层)

文章目录 模板传值模板语法传值特性 模板语法之过滤器常用的过滤器模板层之标签模板中的标签的格式为标签之if判断 标签之for循环模板的继承与导入模板导入导入格式 模板传值 """ 模板层三种语法 {{}}:主要与数据值相关 {%%}:主要与逻辑相关 {##}&#xff1a;模…

【开源】基于Vue和SpringBoot的快乐贩卖馆管理系统

项目编号&#xff1a; S 064 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S064&#xff0c;文末获取源码。} 项目编号&#xff1a;S064&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 搞笑视频模块2.3 视…

Linux常用的磁盘使用情况命令汇总

1、查看分区使用百分比 df -h 2、查看指定目录磁盘使用情况 du -hac --max-depth1 /opt 参数&#xff1a;-a 查看所有文件&#xff0c;-c 汇总统计&#xff0c;max-depth1 查看深度为1&#xff0c;2级目录不再统计。 3、常用统计命令汇总

一键帮您解决win11最新版画图工具难用问题!

&#x1f984;个人主页:修修修也 ⚙️操作环境:Windows 11 正文 自从win11更新后,新版的画图工具变得非常难用,如: 使用橡皮擦后露出背版马赛克 框住某部分拖动移动时背景露出马赛克剪贴板上图片信息无法直接插入到画图板 目前没有一个好一些的能够在软件内部解决这些问题的方…