- 博客(166)
- 收藏
- 关注
原创 【前端基础】正则表达式 详解
正则表达式是一种描述字符模式的强大工具,用于文本搜索、验证、替换和提取操作。它由普通字符和具有特殊含义的元字符组成,通过模式匹配实现复杂字符串处理。核心功能包括元字符(如.、*、+)、字符集合、预定义字符类(如\d、\w)及量词控制匹配次数。正则表达式支持分组捕获、贪婪/非贪婪匹配,以及前后行断言等高级功能,广泛应用于数据验证、日志分析、文本处理等场景。虽然学习曲线较陡,但掌握后能显著提升文本处理效率和精确度。
2025-05-27 00:30:03
1162
原创 【前端基础】事件循环 详解
JavaScript事件循环是其实现异步非阻塞的核心机制。作为单线程语言,JS通过调用栈、任务队列和宿主环境API协同工作:同步代码直接执行,异步任务(如setTimeout、Promise)交由宿主API处理,完成后回调进入宏/微任务队列。事件循环持续检查调用栈,优先执行所有微任务(如Promise回调),再处理一个宏任务(如定时器回调),循环往复。微任务优先级高,确保在当前宏任务结束后立即执行。理解这一机制对掌握异步编程至关重要,如setTimeout与Promise的执行顺序差异。
2025-05-26 18:52:59
1132
原创 【前端基础】Promise 详解
Promise对象用于表示一个异步操作的最终完成(或失败)及其结果值。简单来说,Promise 是一个承诺:它承诺在未来的某个时刻会给你一个结果,这个结果要么是成功的(fulfilled/resolved),要么是失败的(rejected)。
2025-05-26 16:52:49
1244
原创 【HM-React】08. Layout模块
业务背景:如果用户一段时间不做任何操作,到时之后应该清除所有过期用户信息跳回到登录。图表类业务渲染,我们可以通过下面的顺序来实现。
2025-01-13 01:51:41
659
原创 【HM-React】07. 登录模块
实现步骤代码实现表单校验实现实现步骤代码实现获取登录表单数据实现步骤代码实现实现步骤Axios配置Redux实现登录逻辑token持久化封装存取方法实现持久化逻辑刷新浏览器,通过Redux调试工具查看token数据路由鉴权实现实现步骤代码实现
2025-01-13 01:46:08
870
原创 【HMReact】03. Redux
Redux 是React最常用的集中状态管理工具,类似于Vue中的Pinia(Vuex),可以独立于框架运行作用:通过集中管理的方式管理应用的状态。
2024-12-24 22:44:57
872
原创 【HM-React】02. React基础-下
概念:自定义Hook是以use打头的函数,通过自定义Hook函数可以用来实现逻辑的封装和复用// 封装自定义Hook// 问题: 布尔切换的逻辑 当前组件耦合在一起的 不方便复用// 解决思路: 自定义hook// 可复用的逻辑代码value)// 哪些状态和回调函数需要在其他组件中使用 returnreturn {value,toggle// 封装自定义hook通用思路// 1. 声明一个以use打头的函数// 2. 在函数体内封装可复用的逻辑(只要是可复用的逻辑)
2024-12-02 21:04:00
1314
原创 【框架前置】01. AJAX入门
如下对象取值的方式哪个正确?A: obj.aB: obj()a哪个赋值会让浏览器解析成标签显示?哪个是获取输入框值的方式?哪个是用于获取标签内容?A: theP.innerHTML = ‘内容’哪个是数组的映射方法?B: arr.map数组转字符串并指定拼接符的是哪个?函数传参的方式哪个是正确的?A:showAlert(‘消息’, ‘类名’)以下哪套代码可以实现对象属性的简写?以下代码的值是多少?A:‘成年了’B:‘未成年’以下哪个方法可以添加一个额外类名?
2024-11-16 17:53:33
1117
原创 【JS学习】15. JS进阶-深浅拷贝等
首先浅拷贝和深拷贝只针对引用类型浅拷贝:拷贝的是地址如果是简单数据类型拷贝值,引用数据类型拷贝的是地址 (简单理解: 如果是单层对象,没问题,如果有多层就有问题)
2024-11-14 01:00:53
769
原创 【JS学习】14. JS进阶-OOD进阶
了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。
2024-11-14 01:00:03
854
原创 【JS学习】13. JS进阶-OOD
了解面向对象编程的基础概念及构造函数的作用,体会 JavaScript 一切皆对象的语言特征,掌握常见的对象属性和方法的使用。
2024-11-13 02:22:04
746
原创 【JS学习】12. JS进阶-作用域&闭包
学习作用域、变量提升、闭包等语言特征,加深对 JavaScript 的理解,掌握变量赋值、函数声明的简洁语法,降低代码的冗余度。
2024-11-13 02:21:27
1004
原创 【JS学习】11. web API-正则
元素.classList.contains() 看看有没有包含某个类,如果有则返回true,么有则返回false。// const strEnd = str.replace(/前端/, 'web') 只能替换一个。// const strEnd = str.replace(/前端/, 'web') 只能替换一个。表示字符的范围,定义的规则限定在某个范围,比如只能是英文字母,或者数字等等,用表示范围。// 用户名可以输入英文字母,数字,可以加下划线,要求 6~16位。
2024-11-05 16:06:23
356
原创 【JS学习】10. web API-BOM
history (历史)是对象,主要管理历史记录, 该对象与浏览器地址栏的操作相对应,如前进、后退等。location (地址) 它拆分并保存了 URL 地址的各个组成部分, 它是一个对象。map 也称为映射。**特性:**以键值对的形式存储,并且存储的是字符串, 省略了window。**问题:**因为本地存储里面取出来的是字符串,不是对象,无法直接使用。**解决:**需要将复杂数据类型转换成 JSON字符串,在存储到本地。**作用:**join() 方法用于把数组中的所有元素转换一个字符串。
2024-11-05 16:04:45
899
原创 【JS学习】07. web API-事件
的第2个参数是函数,这个函数会在事件被触发时立即被调用,在这个函数中可以编写任意逻辑的代码,如改变 DOM 文本颜色、文本内容等。译成中文是【点击】的意思,它的含义是监听(等着)用户鼠标的单击操作,除了【单击】还有【双击】是 DOM 对象专门用来添加事件监听的方法,它的两个参数分别为【事件类型】和【事件回调】。任意事件类型被触发时与事件相关的信息会被以对象的形式记录下来,我们称这个对象为事件对象。事件回调函数的【第1个参数】即所谓的事件对象,通常习惯性的将这个对数命名为。
2024-11-04 00:55:08
700
原创 【JS学习】06. web API-DOM
知道 ECMAScript 与 JavaScript 的关系,Web APIs 是浏览器扩展的功能。严格意义上讲,我们在 JavaScript 阶段学习的知识绝大部分属于 ECMAScript 的知识体系,ECMAScript 简称 ES 它提供了一套语言标准规范,如变量、数据类型、表达式、语句、函数等语法规则都是由 ECMAScript 规定的。浏览器将 ECMAScript 大部分的规范加以实现,并且在此基础上又扩展一些实用的功能,这些被扩展出来的内容我们称为 Web APIs。
2024-11-02 22:37:26
649
原创 【JS学习】03. JS基础语法-for&数组
script > // 1. 语法,使用 [] 来定义一个空数组 // 定义一个空数组,然后赋值给变量 classes // let classes = [];// 2. 定义非空数组 let classes = [ '小明' , '小刚' , '小红' , '小丽' , '小米' ] </ script >// 1. 语法,使用 [] 来定义一个空数组。
2024-11-01 01:55:53
811
原创 【JS学习】02. JS基础-运算符&语句
理解什么是流程控制,知道条件控制的种类并掌握其对应的语法规则,具备利用循环编写简易ATM取款机程序能力。
2024-10-31 03:26:02
896
原创 【代码随想录21】回溯03
其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。,用以表示一个 IP 地址,返回所有可能的。返回的解集中,子集可以按。返回该数组所有可能的子集(幂集)。正好由四个整数(每个整数位于。之间组成,且不能含有前导。给定一个只包含数字的字符串。,这些地址可以通过在。
2024-07-27 00:21:52
349
原创 【代码随想录20】回溯02
如果至少一个数字的被选数量不同,则两种组合是不同的。中的每个数字在每个组合中只能使用。分割成一些子串,使每个子串都是。是正着读和反着读都一样的字符串。,并以列表形式返回。中可以使数字和为目标数。对于给定的输入,保证和为。给定一个候选人编号的集合。解集不能包含重复的组合。中所有可以使数字和为。所有可能的分割方案。
2024-07-25 19:44:13
364
原创 【代码随想录19】回溯01
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。该列表不能包含相同的组合两次,组合可以以任何顺序返回。的字符串,返回所有它能表示的字母组合。所有可能的有效组合的列表。
2024-07-24 18:41:27
513
原创 【代码随想录18】二叉树08
给你一个整数数组nums,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]输入:nums = [1,3]输出:[3,1]解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。nums按严格递增顺序排列。
2024-07-23 20:19:10
968
原创 【代码随想录17】二叉树07
给定二叉搜索树(BST)的根节点root和要插入树中的值value,将值插入二叉搜索树。返回插入后二叉搜索树的根节点。输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。你可以返回任意有效的结果。输入:root = [4,2,7,1,3], val = 5输出:[4,2,7,1,3,5]输入:root = [40,20,60,10,30,50,70], val = 25。
2024-07-22 22:44:48
952
原创 【代码随想录16】二叉树06
给你一个含重复值的二叉搜索树(BST)的根节点root,找出并返回 BST 中的所有众数(即,出现频率最高的元素)。如果树中有不止一个众数,可以按任意顺序返回。结点左子树中所含节点的值小于等于当前节点的值结点右子树中所含节点的值大于等于当前节点的值左子树和右子树都是二叉搜索树输入:root = [1,null,2,2]输出:[2]输入:root = [0]输出:[0]树中节点的数目在范围[1, 104]内**进阶:**你可以不使用额外的空间吗?
2024-07-20 21:52:30
348
原创 【代码随想录05】二叉树05
给你两棵二叉树:root1和root2。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为null 的节点将直接作为新二叉树的节点。返回合并后的二叉树。合并过程必须从两个树的根节点开始。输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]输出:[3,4,5,5,4,null,7]
2024-07-19 23:36:50
566
原创 【代码随想录14】二叉树04
的路径,这条路径上所有节点值相加等于目标和。是同一棵树的后序遍历,请你构造并返回这颗。路径总和等于给定目标和的路径。,请构造二叉树并返回其根节点。假设二叉树中至少有一个节点。和一个表示目标和的整数。是指没有子节点的节点。是指没有子节点的节点。是二叉树的中序遍历,
2024-07-18 22:01:50
674
原创 【代码随想录13】二叉树03
的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。给定一个二叉树,判断它是否是高度平衡的二叉树。的左右两个子树的高度差的绝对值不超过 1。,返回所有从根节点到叶子节点的路径。给你一个二叉树的根节点。是指没有子节点的节点。,返回所有左叶子之和。,求出该树的节点个数。
2024-07-17 21:16:05
537
原创 【代码随想录12】二叉树02
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。是指从根节点到最远叶子节点的最长路径上的节点数。**说明:**叶子节点是指没有子节点的节点。本题属于二叉树的基础题目,需要牢牢掌握。本题属于二叉树的基础题目,需要牢牢掌握。,翻转这棵二叉树,并返回其根节点。给定一个二叉树,找出其最小深度。给你一棵二叉树的根节点。给你一个二叉树的根节点。, 检查它是否轴对称。
2024-07-16 23:24:09
457
原创 【代码随想录11】二叉树01
本题属于二叉树的基础题目,需要牢牢掌握。本题属于二叉树的基础题目,需要牢牢掌握。本题属于二叉树的基础题目,需要牢牢掌握。给你一棵二叉树的根节点。给定一个二叉树的根节点。
2024-07-15 23:04:25
267
原创 【代码随想录10】栈与队列02
本题可以创建单调队列,队首始终是滑动窗口中最大的元素。在窗口移动时,如果移出的元素是最大元素,那么队首元素出列。如果移入的元素比队尾元素小,则队尾元素出列,直到比队尾元素大。这样就保证了队列的元素单调递减。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。每个运算对象可以是整数,也可以是另一个逆波兰表达式。滑动窗口每次只向右移动一位。两个整数之间的除法只保留整数部分。
2024-07-12 22:18:40
386
【Leetcode刷题笔记01】704.二分查找 27.移除元素.md
2024-01-13
【Leetcode刷题笔记02】977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵II.md
2024-01-13
【Leetcode刷题笔记03】203.移除链表元素 707.设计链表 206. 反转链表.md
2024-01-13
【Leetcode刷题笔记04】24. 两两交换节点 19. 删除结点 07. 链表相交 142. 环形链表 II.md
2024-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人