自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 Mock与useMock

useMock是一款无需本地配置的在线Mock平台,支持可视化创建接口,模拟各类请求与异常场景。前端可基于接口文档快速搭建模拟数据,实现并行开发,调试分页、错误处理、弱网加载等逻辑。通过环境变量切换,无缝对接真实接口。其核心价值在于提升开发效率、增强代码健壮性,助力前后端高效协同。

2026-10-11 18:57:00 265

原创 Vue3 组件通信

Vue3组件通信方式多样:Props实现父传子,Emits实现子传父;v-model支持双向绑定;ref与defineExpose允许父访问子组件;attrs透传属性;provide/inject解决跨层级通信;Pinia管理全局状态;mitt实现任意组件事件总线。各方法适用于不同场景,合理选择可提升开发效率与代码可维护性。

2026-09-27 22:27:43 246

原创 Vue3 响应式原理

Vue3 响应式基于 Proxy 实现,通过 get 和 set 拦截数据读写。利用 effect 记录依赖,track 收集依赖,trigger 触发更新。结合 WeakMap 避免内存泄漏,支持懒代理(深层对象按需代理),并通过 Reflect 保证 this 指向正确。使用 Set 去重避免重复触发,配合值比较防止无效更新,实现高效响应式系统。

2026-09-20 14:39:11 229

原创 ts接口梳理

TypeScript 接口(interface)是定义对象结构的契约,仅在编译阶段生效,不生成JS代码。它支持类实现(implements)、重复声明自动合并,适用于描述对象结构、约束类行为及库开发。相比type,接口可被类实现且支持合并;相比抽象类,接口无方法实现与构造函数,仅提供公开成员签名。合理使用接口可提升代码可维护性与扩展性。

2026-09-13 16:50:05 130

原创 事件循环讲解

<think>我们根据内容生成摘要,不超过150字。摘要要概括事件循环、宏任务微任务优先级、执行顺序、例子要点、判断技巧。简洁。</think>事件循环是JS安排任务的规则:同步代码先执行,微任务(Promise.then、await后代码)优先级高于宏任务(setTimeout等)。每执行完一个宏任务,就清空所有微任务,再取下一宏任务,循环往复。setTimeout延迟只决定入队时间,非执行时间;微任务中产生的新微任务在本轮清空。判断输出顺序:同步→微任务→宏任务(按入队序)。

2026-09-06 16:41:58 152

原创 原生XMLHttpRequest + axios + fetch

文章摘要: 本文全面介绍了AJAX技术及其实现方式,从原生XMLHttpRequest到现代axios和Fetch API。主要内容包括:AJAX核心概念与优势;原生XHR的GET/POST请求实现及JSON数据处理;常见问题解决方案(IE缓存、超时处理、取消请求等);现代AJAX方案axios和Fetch的使用;以及跨域问题CORS的简要说明。文章通过代码示例详细演示了各种AJAX实现方式,适合前端开发者系统学习异步数据交互技术。

2026-08-01 16:53:33 397

原创 HTTP 模块与 Express 框架

文章摘要 本文对比了Node.js原生HTTP模块与Express框架的开发方式。原生HTTP模块提供底层控制,但需要手动处理请求解析、路由判断和静态资源服务,代码较为繁琐。Express框架通过简洁的API、中间件机制和路由系统,大幅简化了Web服务开发流程。文章详细演示了两种方式创建服务、解析请求和构建响应的代码实现,并指出Express在开发效率和可维护性上的优势,适合构建更复杂的Web应用。

2026-07-25 14:40:24 228

原创 CSS文档流相关:BFC

本文介绍了CSS中的BFC(块级格式化上下文)概念及其应用。主要内容包括:文档流的基本排列规则、格式化上下文的分类、创建BFC的四种方法(根元素、浮动/定位元素、flex/grid子元素、overflow:hidden),以及BFC的两个主要作用(解决外边距折叠和浮动元素高度塌陷问题)。文章还简要提及了GFC和FFC等其他格式化上下文类型,并推荐优先使用display:flow-root来创建BFC以避免副作用。

2026-07-15 20:51:37 260

原创 JS 数组操作

本文介绍了JavaScript数组的基本操作,主要内容包括: 数组声明:通过字面量[]和构造函数new Array()两种方式创建数组; 修改操作:通过索引直接修改单个元素,或使用循环批量修改; 增加操作:使用push()在末尾添加元素,unshift()在开头添加元素; 删除操作:使用pop()删除末尾元素,shift()删除开头元素,splice()删除任意位置元素; 常用计算:通过循环实现数组求和、平均值、最大值和最小值计算。 这些基础操作是JavaScript数组编程的核心知识。

2026-06-21 17:45:41 227

原创 JavaScript 基础语法

JS 中存在「显示转换」(手动转换)和「隐式转换」(自动转换)两种方式,开发中需重点掌握显示转换。JS 中有多种数据类型,核心分为「基本数据类型」和「引用数据类型」,本文重点讲解基础的基本数据类型。变量是存储数据的容器,常量则用于存储不可修改的数据,二者的声明方式和规则有明确区别。是 ES5 语法,存在「变量提升」「重复声明」等问题,ES6 推出的。运算符是操作数据的核心,包括赋值、一元、比较、逻辑运算符等。普通字符串拼接繁琐,ES6 模板字符串(反引号。

2026-06-14 18:02:33 263

原创 图论:拓扑排序

拓扑排序是对 ** 有向无环图(DAG)** 的所有顶点进行线性排序,使得对于图中任意一条有向边u → v,顶点u在排序结果中一定出现在v之前。把有依赖关系的节点排成一个合法的线性序列。拓扑排序:仅适用于有向无环图(DAG),核心是将依赖关系线性化;最优应用:DAG 上的最长 / 最短路径,拓扑排序 + DP 是标准解法;本题关键:地窖只能向小编号到大编号移动,天然构成 DAG,完美适配拓扑排序。

2026-06-07 17:24:15 326

原创 多源 BFS

单源 BFS =从一个起点出发,按照「层级」向外扩散,第一次访问到某个节点时,就是从起点到该节点的最短距离 / 最少步数。多源 BFS =从多个起点同时出发,所有起点一起按层扩散,第一次访问到某个节点时,就是该节点到「最近起点」的最短距离。一次遍历,求出所有点到最近源点的最短距离。// 网格最大范围(根据题目调整)// 距离数组:-1 = 未访问/未扩散// 方向数组:上下左右int n, m;

2026-05-30 21:43:15 273

原创 纯 HTML+CSS 实现 换一换 交互

- 所有radio必须放在内容页之前,且name相同 --> < input type = " radio " name = " page-switch " id = " page-1 " checked > < input type = " radio " name = " page-switch " id = " page-2 " > < input type = " radio " name = " page-switch " id = " page-3 " >

2026-05-25 17:33:28 551

原创 前端移动端适配与 Bootstrap

移动端适配:优先选择 VW(简单)或 REM(灵活),配合媒体查询和弹性布局,可满足大部分场景Bootstrap:掌握 “容器 - 行 - 列” 的 12 栅格系统,灵活调用组件类名,能快速实现响应式。

2026-05-23 21:33:04 411

原创 CSS3:从 2D 变换到 3D 翻转

本文系统介绍了CSS动效开发的核心技术,包括2D变换(位移、旋转、缩放、倾斜)和3D变换(透视、3D空间、背面隐藏)的实现原理与典型应用场景。重点讲解了transform属性的特性、组合变换顺序规则,以及transition与animation的本质区别。文章还提供了3D卡片翻转效果的完整代码示例,并总结了transform使用中的注意事项,如行内元素处理、层级关系、性能优化等要点,为前端开发者提供了实用的动效开发指南。

2026-05-10 17:49:31 590

原创 算法考核题解

给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

2026-05-05 18:59:03 792

原创 定位、网格与多列布局

CSS布局核心体系解析:定位、Grid与多列布局三大方案各具特色。定位布局通过position属性实现精准控制,注意relative保持文档流特性,absolute需配合父级relative使用,sticky需设置阈值且父容器避免overflow:hidden。Grid作为二维布局神器,支持fr单位、repeat函数和自动填充(auto-fill/fit),配合minmax()实现响应式网格,通过grid-column/row控制跨列跨行。多列布局专注文本流排版,column-count控制列数,break

2026-05-05 17:28:46 407

原创 Flex 弹性布局学习总结

Flex 布局的核心是 “轴” 的控制:先确定主轴方向,再通过(主轴)、(交叉轴)控制对齐。换行场景下,是基础,多行对齐用,单行对齐用。实战中,flex: 1适合单行等分,flex: 0 0 固定比例适合多行固定列数,gap简化间距控制。细节优化:图片底部留白可通过或解决。

2026-04-26 15:32:22 193

原创 二分查找与二分答案

二分查找,是一种在有序数组中快速查找目标元素的算法。它的核心思想是「每次排除一半的不可能区间」,将暴力查找的O(n)时间复杂度优化到O(logn),在大数据量下优势极其明显。已知目标值,找目标值在数组中的位置(或判断是否存在)。当答案在一个连续的区间内,且答案满足单调性时,我们可以通过「猜一个中间值 + 验证这个值是否可行」的方式,不断缩小区间,最终找到符合要求的最优解。二分查找 vs 二分答案类型核心目标前提核心操作二分查找已知目标值,找位置数组有序对比数组元素和目标值,缩小区间。

2026-04-12 21:18:17 464

原创 前缀和与差分

在算法竞赛(如蓝桥杯、ACM)和日常刷题中,区间求和和区间修改是两类高频问题。如果用暴力解法,时间复杂度往往是 O (n) 甚至 O (n²),面对大数据量时直接超时。而前缀和和差分,就是专门解决这两类问题的 “神器”,能把时间复杂度直接降到 O (1) 或 O (n),是算法入门的核心基础。本文将从原理、适用场景、经典例题三个维度,完整拆解一维 / 二维前缀和与差分,帮你彻底吃透这两个知识点。表格类型核心公式适用场景时间复杂度一维前缀和静态数组,多次区间求和。

2026-04-12 13:33:36 381

原创 动态规划核心与题例

动态规划(Dynamic Programming, DP)的本质是 “用空间换时间”:将复杂问题分解为多个子问题,存储子问题的解,避免重复计算。状态定义:用dp数组表示什么(最关键的一步!转移方程:子问题之间的递推关系初始化dp数组的初始值(处理边界情况)遍历顺序:按什么顺序计算子问题(保证当前状态依赖的子问题已计算完成)适用场景:问题满足「重叠子问题」「最优子结构」「无后效性」三个条件时,优先考虑 DP。

2026-04-05 17:23:48 361

原创 贪心算法详解与题例

在每一步都做出当前状态下的最优选择(局部最优),通过一系列的局部最优决策,最终推导出全局最优解。举个通俗的例子:你要从家到公司,每一个路口都选当前看起来最短的路,最终走到公司,这就是贪心的核心思路。问题拆解:把全局问题拆分成多个独立的子问题;策略设计:针对每个子问题,设计能实现局部最优的贪心策略;正确性验证:验证这个策略堆叠起来,能不能得到全局最优(可通过示例反推、数学归纳法验证);代码落地:把策略转化为代码,排序 + 遍历是贪心最常见的实现方式。

2026-03-29 01:07:41 259

原创 经典回溯算法五大问题思路与详解

回溯算法本质是暴力穷举,问题可抽象为树形结构,有固定解题模板。核心解决组合、切割、子集、排列、棋盘五类典型问题。模板核心三步:判断终止、遍历选择元素、递归 + 回溯。

2026-03-16 21:16:49 367

原创 C++ STL 容器全解析

vector是 STL 中最常用的动态数组容器,底层基于连续内存空间实现。它支持随机访问(效率 O (1)),尾部插入 / 删除元素效率高(O (1)),中间插入 / 删除效率低(O (n)),可自动扩容。string容器是对 char 数组的封装,提供了丰富的字符串操作接口,相比原生 char 数组更安全、易用,支持字符串的拼接、查找、替换、比较等核心操作。deque(双端队列)是一种分段连续的线性容器,支持首尾两端的快速插入 / 删除(O (1)),也支持随机访问(O (1))。

2026-03-15 06:47:18 418

原创 【C++】六大经典排序算法(冒泡 / 选择 / 插入 / 希尔 / 快速 / 归并)详解与实现

排序算法平均时间复杂度最坏时间复杂度空间复杂度稳定性核心适用场景冒泡排序O(n²)O(n²)O(1)稳定小规模、基本有序数据选择排序O(n²)O(n²)O(1)不稳定小规模、少交换场景插入排序O(n²)O(n²)O(1)稳定小规模、在线排序希尔排序O(n^1.3)O(n²)O(1)不稳定中等规模数据快速排序O(nlogn)O(n²)O(logn)不稳定大规模、通用高效场景归并排序O(nlogn)O(nlogn)O(n)稳定。

2026-03-08 15:11:30 445

原创 3G期末考核题解

树的中序遍历口诀:根左右。

2025-12-13 18:24:41 318

原创 基于分类的排序——桶排序,计数排序,基数排序

若有一个长度为 n ,元素范围为 [ a - b ] 的整数待排序数组。初始化 k 个桶,将 n 个元素分配进 k 个桶中。对每个桶内元素分别排序。将每个桶按一定顺序合并得出结果。例:有一个长度为 7 ,元素范围为 [ 1 - 6 ] 的整数待排序数组。初始化 3 个桶。将7个元素分配到3个桶中。对每个桶内元素分别排序。将每个桶按从小到大顺序合并得出结果。

2025-12-08 22:04:04 950

原创 二叉树的基本内容(1)

此条与上方树相关内容类似,不多做概述。

2025-12-02 19:39:42 478

原创 常用字符串函数

例题:2. strcpy例题:9. strtok10. strerror11. gets12. fgets例题:为什么 fgets 比 gets 更好?是的安全替代,核心优势:例题:例题:

2025-11-28 19:49:26 1013

原创 哈希表相关内容

哈希表​ 是一种高效的数据结构,它通过一个哈希函数将键​ 映射到数组中的某个位置,从而实现快速的插入、删除和查找操作。

2025-11-20 21:06:43 648

原创 反转链表的五种方法

本文介绍了五种链表反转的实现方法:1.原地反转法:利用虚拟头节点和双指针,将end指针指向的节点依次移动到虚拟头节点后;2.头插法:通过不断移动NewHead位置,以头插方式构建新链表;3.迭代法:使用三指针遍历,通过second指向first实现节点反转;4.递归法:将迭代法改写为递归形式;5.栈实现:利用栈先进后出的特性反转链表。每种方法都提供了核心思想说明和完整的C语言代码实现,涵盖了指针操作、递归和栈等多种编程技术。

2025-11-13 16:49:03 841

原创 栈与队列的定义及实现

本文介绍了栈和队列两种线性数据结构及其实现方式。栈遵循LIFO(后进先出)原则,仅允许在栈顶进行插入(push)和删除(pop)操作;队列遵循FIFO(先进先出)原则,在队尾插入(enqueue)和在队头删除(dequeue)。详细讲解了顺序结构和链表结构的实现方法,包括初始化、判空、插入、删除等核心操作。顺序栈使用数组存储,链表栈通过节点链接;顺序队列包括静态和动态分配,还介绍了循环队列的优化实现。最后对比了两种数据结构的核心特性和操作限制。

2025-11-11 17:46:58 493

原创 C语言相关的文件操作

从文件中读取一个字符,返回该字符的 ASCII 码;读到文件末尾或出错时返回 EOF。写入文件(不自动加换行),成功返回非负整数,失败返回 EOF。返回值:当前位置相对于文件开头的字节数(失败返回 -1)。:读操作失败(如文件损坏)也可能返回 EOF,需结合。写入文件,成功返回该字符,失败返回 EOF。中,遇到换行或文件末尾则停止,自动在末尾加。,返回实际读到的块数(到末尾时可能小于。返回值:到末尾返回非 0,否则返回 0。:偏移量(正数向前移,负数向后移)。,失败或到末尾返回 NULL。

2025-11-05 23:08:45 1234

原创 顺序表与链表

原理:用一组任意的存储单元(这些存储单元可以是连续的,也可以是不连续的)来存储数据元素。每个元素(结点)除了存储自身信息外,还存储了指向其直接后继元素地址的指针。特点:逻辑上相邻的元素,在物理存储上不一定相邻。因此,不支持随机存取,访问某个元素需要从头开始遍历,时间复杂度为 O(n)。但插入和删除操作非常高效,只需修改指针,时间复杂度为 O(1)(在找到操作位置后)。接下来我们以单链表为研究对象,研究链表相关操作。

2025-11-02 12:42:08 880

原创 算法——复杂度分析

我们需要对算法效率分析,而大多数方法都无法抛弃环境因素且设备要求多而杂,复杂度分析可以避免以上问题。它有以下优点:不需要复杂的设备,节省计算资源。不同机器复杂度分析的方法相同,不会受到环境因素干扰。适用于所有软件,不会受到编程平台的限制。

2025-10-29 19:40:34 529

原创 大端存储 or 小端存储?一文带你看懂大小端!

大端(大端存储):高位字节存于低地址,低位字节存于高地址。小端(小端存储):低位字节存于低地址,高位字节存于高地址。地址大端存储小端存储。

2025-10-25 23:18:04 565

原创 西邮3G移动实验室二面试题题解

思路:分别计算上午文章字数和下午文章字数之和,根据题目要求判断大小或等于后输出对应得内容。

2025-10-25 16:33:15 450

原创 西邮3G移动应用实验室一面试题题解

对于整数x,y存在整数a,b使得a*x+b*y=gcd(x,y)(gcd 是x和y的最大公约数)。(表达式2):(表达式3)是一个三目操作符。SQUARE(++i)=++i*++i,先执行第一个++i,i变为3,再执行第二个++i,i变为4,最后执行3*4,结果为12。SQUARE(++j)=++j*++j,先执行第一个++j,j变为3,再执行第二个++j,j变为2,最后执行3*2,结果为6。arr[1]表示arr第二行第一个元素,加2表示下标后移2,即第二行第三个元素,解引用输出6。

2025-10-25 15:54:37 1189 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除