- 博客(23)
- 收藏
- 关注
原创 前端 | 浅拷贝&深拷贝
在前端开发中,我们经常需要复制对象或数组,但不同的复制方式可能会影响数据的完整性和应用的稳定性。本文将深入探讨浅拷贝(Shallow Copy)和深拷贝(Deep Copy)的区别、实现方式及适用场景。
2025-02-04 19:48:26
1059
原创 前端 | JavaScript中的reduce方法
reduce 方法是 JavaScript 中强大的数组方法之一。本文详细介绍了 reduce 的语法和执行过程,并通过示例展示了其在不同场景中的应用,如数组求和、对象属性累加、数据分组等。此外,文章还探讨了手写 reduce 方法的实现,帮助读者深入理解 reduce 的工作原理及其在实际开发中的灵活运用。
2025-02-03 20:52:58
1422
原创 前端力扣刷题 | 6:hot100之 矩阵
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0。请使用 原地 算法。编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
2025-02-03 17:43:51
1868
原创 前端 | 深入理解Promise
JavaScript 作为单线程语言,利用回调函数处理异步操作,但回调地狱使得代码难以维护。ES6 引入 Promise 解决异步编程问题,使异步操作更清晰。Promise 具有 pending、resolved 和 rejected 三种状态,并且状态一旦改变就不可逆。Promise 提供 then、catch、all、race 等方法,其中 async/await 进一步简化了异步操作,使代码更清晰、易读,同时支持 try/catch 捕获错误。此外,文中还介绍了 Promise 及其方法的手写实现,帮
2025-02-01 17:12:40
2011
原创 前端力扣刷题 | 5:hot100之 普通数组
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6。
2025-01-27 18:08:20
990
原创 前端力扣刷题 | 4:hot100之 子串
560. 和为K的子数组给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。子数组是数组中元素的连续非空序列。
2025-01-26 20:33:21
221
原创 前端 | 浏览器安全:XSS攻击、CSRF攻击、中间人攻击
本博客介绍了三种常见的Web安全攻击:XSS、CSRF和中间人攻击(MITM)。XSS攻击:攻击者注入恶意脚本,窃取数据或篡改页面。CSRF攻击:通过伪造请求执行未授权操作,防范方法包括使用随机令牌、检查Referer头部和双重认证。中间人攻击:攻击者拦截通信数据,防范方法包括使用HTTPS、VPN、证书验证和多因素认证。
2025-01-25 15:25:40
1060
原创 前端力扣刷题 | 3:hot100之 滑动窗口
给定两个字符串 s 和 p,找到 s 中所有 p 的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。起始索引等于 6 的子串是 “bac”, 它是 “abc” 的异位词。给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。输入: s = “cbaebabacd”, p = “abc”输入: s = “abcabcbb”
2025-01-25 14:43:56
360
原创 前端力扣刷题 | 2:hot100之 双指针
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]输入: nums = [0,1,0,3,12]输出:[[-1,-1,2],[-1,0,1]]
2025-01-25 13:56:48
595
原创 分布式版本控制系统:Git
Git官网:https://git-scm.com/Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目Git易于学习,占地面积小,性能极快。它具有廉价的本地库、方便的暂存区域和多个工作流分支等特性在版本控制过程中,同时推进多个任务,我们就可以为每个任务创建单独的分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。
2025-01-24 16:24:31
864
原创 前端力扣刷题 | 1:Hot100之 哈希
1. 两数之和:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。49. 字母异位词分组:给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。128. 最长连续序列:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
2025-01-23 20:58:33
647
原创 js手撕 | 使用css画一个三角形 & 使用js修改元素样式 & 驼峰格式与“-”格式相互转化
使用css画一个三角形 & 如何使用js来实现:鼠标移入时修改元素的样式& 驼峰格式与“-”格式相互转化
2025-01-22 21:14:14
282
原创 JavaScript | 事件循环机制
JavaScript 是一种单线程语言,依赖于 事件循环机制 (简称 Event Loop),完成对同步和异步任务的处理,从而实现非阻塞并发。这里将从基础概念到实际例子,进一步解释事件循环的运作机制。
2025-01-22 15:14:48
1019
原创 JS常用方法总结
数组方法:sort,slice,split,splice,concat,字符串方法:toUpperCase,toLowerCase,includes,endwith,replace
2025-01-21 21:38:09
753
原创 前端 | 设计模式之 观察者模式&发布订阅模式
在前端开发中,观察者模式(Observer Pattern) 和 发布订阅模式(Publish-Subscribe Pattern) 是两个重要的设计模式,广泛用于事件处理、状态管理等场景。虽然它们有相似之处,但本质上却有区别。
2025-01-21 16:54:40
1895
原创 前端 | 设计模式之 代理模式
代理模式(Proxy Pattern) 是一种结构型设计模式,它通过创建一个代理对象,控制对另一个对象的访问。代理对象可以在真实对象前增加额外的功能,比如权限控制、延迟加载、日志记录等。
2025-01-21 16:28:39
367
原创 前端 | 设计模式之 策略模式
在软件开发中,策略模式(Strategy Pattern) 是一种行为型设计模式,它通过定义一系列算法,将它们封装在独立的策略类中,并让客户端在运行时可以选择合适的算法,避免了冗长的条件语句和复杂的代码逻辑。
2025-01-21 16:07:58
133
原创 前端 | 设计模式之 工厂模式
在面向对象编程中,工厂模式(Factory Pattern)是一种用于封装对象创建逻辑的设计模式。它通过将实例化逻辑集中到一个工厂函数或类中,避免了代码中直接使用new关键字,提高了代码的灵活性和可维护性
2025-01-21 15:57:26
388
原创 前端 | 设计模式之 单例模式
在软件开发中,单例模式(Singleton Pattern)是一种用于确保一个类只有一个实例,并提供全局访问点的设计模式。它广泛应用于需要全局共享资源或控制实例数量的场景
2025-01-20 18:15:43
271
原创 前端 | 设计模式
本文将总结前端开发中六种常见的设计模式:单例模式、工厂模式、策略模式、代理模式、发布订阅模式 和 观察者模式,并简要介绍它们的核心思想和适用场景。
2025-01-20 17:35:12
875
原创 js算法 | 冒泡排序、选择排序、插入排序、归并排序、快速排序
本文将通过代码与讲解介绍五种常见的排序算法:冒泡排序、选择排序、插入排序、归并排序和快速排序。
2025-01-20 17:05:06
497
原创 js手撕 | 防抖、节流
函数防抖是指在事件被触发 n 秒后再执行回调,如果在这 n 秒内事件又被触发,则重新计时。这可以使用在一些点击请求的使用:如避免因为用户的多次点击向后端发送多次请求。
2025-01-20 16:53:45
139
原创 js手撕 | call、apply、bind
call、apply 和 bind 是 JavaScript 中用于改变函数执行上下文(改变this 指向)的方法。它们常用于动态绑定函数到不同的对象。
2025-01-20 16:35:14
287
前端 - JavaScript核心方法的手写实现与应用场景解析
2025-02-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人