自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端笔试中oj算法题的解法模版

如今计算机行业的校招大多都是需要先进行笔试,之后才有面试,如果发现题目都会但是却因为自己不了解接受输入参数的模板导致没能通过笔试,哪还是比较可惜的(我就碰到过这种问题pwq)。因此我特意上网查了一下,并结合多个网站进行测试,最终找到了一个相对通用的模板。本篇文章就以一行输入两个数字a,b;输出a和b之和这道题目来写的模板。oj算法输入使用的是readline,但是不同网站上有不同的写法。

2024-11-11 16:19:22 547

原创 宽松相等(==) 的转换规则(仅考虑基本数据类型)

我们都知道,空字符串、false、0、undefined、null转换为布尔类型都是false,其他转成布尔类型都是true。2.2.如果比较双方一个是数字,一个是字符串,那么会尝试将字符串转换为数字,如果不能转换为数字则会转换为NaN,然后比较转换后的数字。宽松相等:仅比较值是否相等,并且会进行一定的类型隐式转换,将两侧转换为相同类型后再比较。在js中,比较两个变量是否相等常见的方法有两种,一个是宽松相等“==”,另一个是严格相等"==="。1.当类型相同时,值相同则为true,不同则为false,

2025-05-23 21:25:57 402

原创 入门indexedDB

本文只讲了基础API,如果想要分页或者排序的话可以使用游标实现,这里就先不说了。欢迎对indexedDB有更多了解的大佬在评论区提出问题。

2025-05-23 10:09:30 279

原创 快速幂运算的了解

今天在力扣上写每日一题时(),接触到了“快速幂运算”这个概念,快速幂运算特别适用于计算a^b%MOD。其中:a是底数;b是指数;MOD是余数(一般为10^9+7)。

2025-04-13 10:43:09 201

原创 i18next在vue3中的应用,可参考写法或直接复用

i18next是一个国际化相关的的依赖,适配多种框,比如vue2/3,react,next.js等等,是一个非常实用的依赖。在一次项目中接触过i18n相关内容,因此今天就整理一下这个通用的插件。上述就是一个完整的使用过程,本文以vue3作为案例,在其他框架中使用方法也类似。1.安装依赖:npm install -S vue3-i18next。3.在main.js/main.ts中引入。

2025-04-01 21:21:59 290

原创 pc端扫码登录整个流程发生了什么

下述过程为个人理解,如果哪点有错误或可优化,希望大家批评指正,教学相长。

2025-02-20 21:41:57 198

原创 three.js太阳系模型demo解析

在搜狐实习过程中,有需求需要将ai生成的3D模型展示在页面中,因此我学习了three.js,在实现功能后,自己突发奇想,准备写一个太阳系3D模型的demo。

2025-02-05 11:12:48 303

原创 首次在服务器装系统kvm+Ubuntu22.04,详细流程流程+报错分析

进入BMC网页,输入服务器标签中的用户名和密码,进入之后在导航栏中找到远程控制,点击远程控制中的启动kvm然后就进入了操作界面。,若仍然有错误,表示docker拉取镜像失败,需要在/etc/docker/daemon.json中配置镜像来帮助docker拉取镜像(我在网上查的都不管用,最后询问同学才得到能够使用的镜像,但是该镜像是他买的,所以就不分享出来了),配置结束后再次执行。1.了解自己要使用的操作系统是什么,我本次使用的是Ubuntu22.04版本,并准备相应的光盘或U盘或iso文件。

2025-01-07 12:45:00 687

原创 解决修改密码表单自动填充浏览器已保存的用于登录的账号密码的问题。

在前端开发过程中可能会遇到这个问题:一个存在登录界面和修改密码界面的项目,为了方便在登录界面登录后保存了账号密码,但是当再次打开修改密码界面时,就会发现修改密码输入框中也会自动填充已经保存的账号密码。本文就来说说这个问题出现的原因和修改方法。

2024-12-18 18:06:21 672

原创 点击按钮复制内容的实现方法。

在开发页面过程中,实现点击按钮复制制定文本是个比较常见的功能,本篇就来详细分享一种实现的方法。

2024-11-29 16:17:21 358

原创 算法中常用到的数学知识:埃拉托色尼筛法(获取质数)、欧几里得算法(求两个数最大公因数)

不管是在项目中还是面试时,一定的算法能力都是极其重要的。大多数算法只要有一定的基础,给足够的时间是可以写出来的,然而有一类算法,说难也不难,说简单也不简单,这种算法通常涉及到某种数学知识,如果了解这种知识那写出来就是易如反掌,而没了解过相应知识的就只能使用暴力解法,数据稍微多一点就超时,甚至暴力都写不出来。本文就给大家讲解一下两种相关的数学知识。

2024-11-22 17:25:48 433

原创 关于vue3-router的基础知识点以及注意事项

本周在写项目的过程中,由于新增了几个页面,所以需要在路由中配置新的路由,又因为有几个页面在不同的路由层级上,所以起的名字是相同的,因此我在添加路由的过程中就将name属性设置成为相同的,这就导致一旦我切换到该路由,就报404。经过我的各种检查,包括component的路径,单词拼写等等各种错误,确认其他没有任何错误,但是还是出错。经过我不懈的努力,最终无意间修改了其中一个name属性的名字,结果改路由就生效了。

2024-11-07 17:30:32 521

原创 鼠标悬停后出现小提示框实现方法

大家在网页上会经常看到某些图标或文字,当鼠标悬停后会在四周某个位置出现一个简短的文字提示,这种提示分为两种,一种是提示固定的文字,例如放在qq图标上,会显示固定的文字“QQ”;第二种是显示鼠标所在标签的完整文字叙述,例如放在标签:“床前明月光,疑是...”,鼠标悬停后会显示完整诗句:“床前明月光,疑是地上霜”。本文就来讲述如何实现上述两种提示方法。

2024-11-01 11:17:55 2073

原创 负数与正数的二进制转换以及计算类型

众所周知,计算机存储的数据,正数使用二进制表示,负数使用补码表示。

2024-10-16 00:00:00 1315

原创 git更加详细和灵活的提交过程,附带如何配置. gitignore来忽略部分文件的提交。

本套流程可以控制提交的代码是哪些,比直接使用git add . 更灵活,比如在项目中,一些文件不能通过.gitignore进行尽职提交,那么就需要使用本方法来手动控制是否提交,缺点就是相对麻烦一些。git rm -r --cached dist//清除缓存中的dist git rm --cached package-lock.json//清除缓存中的package-lock.json。git status//查看从当前工作区和暂存区的状态,包括那些文件被修改,以及提交和未提交的文件有哪些。

2024-10-11 16:26:25 412

原创 HTML页面内拖动图片到input标签实现上传功能

设置在input,也就是目标区域元素上,当设置了dragover和drop之后,就会将添加这两个方法的元素默认为拖放目标元素。在此方法中,最好也禁止默认事件,这样可以保证你可以完全控制拖放操作的结果。设置在图片上,将图片默认为拖拽源,也就是需要被拖拽的元素。需要注意的是,图片默认可以被拖拽,所以可以直接使用该方法;设置在input,也就是目标区域元素上,主要作用是关闭默认事件,因为浏览器默认行为会阻止拖放操作。可操作API:可以像点击事件‘click’一样进行操作,加粗的为常用API。

2024-09-24 15:33:59 558

原创 排序方法sort使用方式不同而产生的不同结果,附力扣179思路

举例:假设数组为[3,34],str1='334',str2='343',比较下来str2第二位大于str1,所以返回正数,a应该放在 b前面,定义中提到a是数组中靠后的数,所以a为34,b为3,所以经过排序后得到数组为[34,4]。平时我们大多使用这个方法对数字数组进行大小排序,如标题中所示,回调函数使用箭头函数表示,返回值为a-b,这个写法的作用是将数组中的数字从小到大排序。0:相对顺序不变,可以理解为正数(因为在回调函数中,a是数组中后面的数,b是数组中前面的数,一般使用正负数,0使用较少)

2024-09-12 16:18:00 807

原创 ssh密钥对的生成方法

第五步:一般在 “C:\Users\用户名” 中会找到一个.ssh文件夹,里面的id_rsa.pub就是公钥,将公钥复制应用在需要的远程仓库即可。第三步:在黑窗口中输入:ssh-keygen -t rsa -C "一个邮箱",然后回车。第四步:输入命令回车后有三个询问的地方,直接三次回车即可。第二步:输入cmd回车,出现黑窗口。第一步:win+R打开搜索框。

2024-08-29 09:48:34 229

原创 使用antd中原生组件实现获取数字范围的组件

引入上述代码就可以正常使用该输入框。

2024-08-10 09:51:45 567

原创 使用umi作为模板如何实现权限管理

umi的特点就是当项目初始化时,路由就已经注册过固定了,因此后期使用动态路由无法再根据登录人员进行路由的动态注册,因此只能使用守卫或者后端人员配合。最后通过与后端协商,在api.ts中的方法currentUser的返回值中加上access属性,并且根据上方代码,有权限的人员登录时返回的access属性必须要是"admin",其他人任意值。路由:通过动态路由,根据登录人员不同注册不同的路由,直接让没有权限的人员直接看不到需要权限的页面。这就是我理解的使用umi自带的权限管理方式来处理权限问题的方法。

2024-07-25 16:22:05 1188

原创 Canvas总结二

(1).这三种变换方式都是对坐标系的操作,对于旋转,是以原点为中心进行旋转,即原来为(1,0)的点,顺时针旋转90°之后,这个点就变成(0,1);:createRadialGradient(圆1圆心x、圆1圆心y,圆1半径,圆2圆心x、圆2圆心y、圆2半径)//一般圆1圆2的圆心相同,不同的用法还没搞懂。平铺方式有:repeat重复;:createLinearGradient(开始点x,开始点y,结束点x,结束点y)//渐变以这两点连成的直线,在这两点内的范围开始渐变,即大于或小于该范围不计入渐变路径。

2024-07-20 16:35:43 1187

原创 this指向解析

2.3:调用构造函数personA中的show2函数,为箭头函数,指向外层最近的普通函数的this,在第一题中,person1只是一个对象,所以指向windows,但是在第二题中,personA为构造函数,show2指向的就是personA,所以依旧打印personA。1.8:调用person1中的show4函数,并再次调用返回函数,show4为普通函数,返回函数为箭头函数,箭头函数的this指向为外面最近一层普通函数的this,即show4的this,因此打印person1。

2024-07-14 18:10:31 528

原创 前端跨域问题的解决办法,两种类型

跨域问题是由于同源策略的原因,在协议(HTTP或HTTPS)不同、端口号(8080或8881)不同、主机IP(182.92.178.25或者182.92.178.26)不同时而导致的不能进行数据交换的问题。当后端没有做跨域时,前端就需要自己配置。

2024-06-16 18:47:05 641

原创 学习Canvas过程中2D的方法、注释及感悟一(通俗易懂)

1.了解Canvas: Canvas是前端一个很重要的知识点,<canvas>标签用于创建画布绘制图形,通过JavaScript进行操作。它为开发者提供一个动态绘制图形的区域,用于创建图标、游戏动画、图像处理等。 对于能够熟练使用Canvas的开发者来说,能够创建出很多令人惊奇的效果,因为我也是刚学了一半,所以对于Canvas要实现的真实目标还不是特别了解,但是对于初学者或者急需使用一些简单方法的同学来说还是会有一些帮助的。Canvas有2D画布和3D画布,目

2024-06-08 10:30:27 1324

原创 阿里云+Xshell部署前端项目,从准备工作到部署成功,亲测详解,小白友好型

使用阿里云服务器+Xshell+Xftp实现将html页面或打包后的项目部署到服务器上,实现可以在不同电脑的浏览器上访问该html页面或项目。注:同一种方法并不一定适合所有情况,该情况可作为一种尝试。

2024-05-19 17:46:20 1864

原创 快手面试算法真题

分析:注意本题要求按照标签层数进行遍历,不要按照每个标签从外到内遍历。既然要按照层数遍历,那么就可以使用一个参数来表示层数,还需要一个参数来表示根标签所以可以得到该方法需要两个参数。因为实际中层数是未知的,所以需要使用递归来进行遍历。例如:html代码如下:(上面的数字表示层数)

2024-04-26 21:40:02 464

原创 蓝桥杯竞赛类型:Web应用开发 全程详解

既然大家准备报名蓝桥杯,那么对蓝桥杯就应该有一定的了解了。没有了解也没关系,简单来说,蓝桥杯就是一个计算机竞赛,竞赛类型大多是使用各种语言写算法,当然还有本文的主体——Web应用开发。对蓝桥杯有了基本了解之后,我将根据本次参赛真实经历,全方位、深层次的为大家讲解Web应用开发的流程、考点、注意事项,最后为大家附上本次的准考证。

2024-04-19 20:52:53 4180 1

原创 数组与伪数组的区别

也还有其他一些方法,就不一一概述了。接下来提一下没有的方法,没有的方法大多是对数组中元素个数进行操作的属性,比如:push()、shift()、pop()等,当然也有一些其他方法,比如map()。1.DOM操作返回的结果:比如使用document.getElementByClassName()、document.querySelectorAll()等,得到的结果是符合类名或选择器的所有元素组成的伪数组。数组是继承自Array的方法,因此可以使用push(),sort(),pop(),shift()等方法;

2024-04-11 17:37:03 480 1

原创 数字华容道项目总结

中途代码丢了一次,当第二次开始写的时候,问了一下杨成熙,然后他就说了一个方法,可以说只是算法中一个很简单的思路,但是因为是在项目中,没有算法的提示环境,于是就没想起来,最后按照这个方法解决成功,大幅度减少代码的使用量。解决过程:后端写好了过程,最初因为模板使用的是HTTPS协议,导致与后端连接不上,当降为HTTP之后还是不行,最后在老师指导之后可以连接成功,websocket带的几个方法也可以使用。在学习编程过程中,为了加强特性技术和对概念的理解,以及学习新的技术,决定开发一个简单的小游戏。

2024-03-13 21:38:43 603

原创 力扣139.单词拆分解析

那么问题就是本题是是字符串,与普通背包问题有一定的区别,前面的代码都是和平常一样,创建一个长度为s.length+1的数组,根据题意初始值可设置为false,而为了解出本道题,arr[0]要初始化为true。之后就是循环体内的代码,判断当遍历出的字符串长度大于等于相应字符串数组元素长度时,需要判断截出的字符串是否与该对应字符串数组是否相等并且截取字符串之前的字符串是否已经寻找成功,如果同时也成功,那么当前字符串对应的最后一位所对应的创建数组位赋值为true。最终返回自创数组的第s.length个的值即可。

2024-03-12 20:13:50 535

原创 力扣背包问题

这道题依然是每个元素只能使用一次,但是每个元素中有1和0两个值,因此按照简单的思路来考虑的话就只能使用三维数组来解决,横轴表示单个元素中的1的数量,纵轴表示单个元素中的2的数量,竖轴表示可选择元素的范围。然后就是力扣1049最后一块石头的重量,这一题和上一题类似,想明白之后都是寻找最接近数组之和一半的值,也是转换为背包容量为数组之和一半,并且物品的重量和价值相同的背包问题。比如力扣416分割等和子集,将其转化为背包容量为数组之和一半,并且物品的重量和价值相同的背包问题,如此便能够解决这个问题。

2024-03-09 17:35:19 527

原创 websocket前端应用

WebSocket:WebSocket时全双工通信协议,允许客户端和服务器之间建立持久连接,双方可以同时发送和接收数据,不需要每次请求都建立新的连接。HTTP API:因为每个HTTP请求都需要建立新的连接,并且请求都需要携带HTTP头部信息,因此HTTP API有较高的延迟和较低的性能。HTTP API:HTTP API基于请求-响应模式,客户端发送请求,服务器返回响应,然后连接关闭。WebSocket适用于需要实时通信和服务器推送功能的场景,而HTTP API则更适用于传统的请求-相应模式的通信。

2024-03-09 15:14:08 1082

原创 pinia仓库的了解和使用

再使用之前,我们先对pinia做一个基本了解:Pinia 是一个专门为 Vue.js 应用程序设计的状态管理库。其中pinia仓库内定义的名称就是上图中第6行的warehoseOne,pinia的路径根据自己的情况来定,自己起的变量名我习惯用useStore。然后就是在项目的store文件夹中创建自己的pinia库,使用项目模板的话会直接找到,自己写的话可以自己创建。以我的为例,想要得到pinia中a的值,那么直接打印useStore.a即可。let 自己起的变量名=pinia仓库内定义的名称()

2024-02-28 16:30:02 460

原创 力扣96不同的二叉搜索树详解

然后就是找规律,以n=3为例:以1为根节点时,其余元素都大于1,左子树节点数为0,结果记为一次,右子树节点为2,在不考虑数值的话左右子树排列总数就等于n=2时候的值,即当1为根节点时结果数位arr[0]*arr[2];当3为根节点时,思路和1为根节点相同,只是所有节点都小于3,因此所有节点都在左子树上,右子树上的节点数为0,即结果为arr[2]*arr[0]。那么n=3能产生的不同二叉搜索树有arr[0]*arr[2]+arr[1]*arr[1]+arr[2]*arr[0]个。

2024-02-19 20:57:33 493

原创 动态规划初识心得

当台阶数为2时,方法有[[1,1],[2]]两种,即h[2]=2;当台阶数为3时,方法有[[1,1,1],[1,2],[2,1]]三种,即h[3]=3。写成递推公式就是h[n]=Math.min(h[n-1]+cost[n-1],h[n-2]+cost[n-2])。比如:509.斐波那契数:对于这道题,一定是要从前向后计算,因为题目中给出的时h[0]=0和h[1]=1,这也相当于知道了规律的前两项,根据题目可以得到h[2]=h[1]+h[0],推导出递推公式h[x]=h[x-1]+h[x-2]。

2024-02-17 11:27:25 484

原创 力扣738单调递增的数字思路以及贪心总结

我的第一部分思路就到这里,写完之后测试全部通过,提交的时候测试用例100失败,答案应该是99,我的是90,然后我就很大意的加了个当n是10的整数倍时,直接返回n-1,结果提交的时候测试用例101也错了,这个时候我才意识到问题的严重性,一旦遇到大于等于三位数且中间有零的就会出错。力扣上的第738题,大家刚开始看的可能比较懵,读懂之后就会发现其实是找小于n的并且右边位上的数字大于等于左边位上的数字的最大整数。从这个数字的各位开始向左依次比较,若左边数大于右边,那么左边数减一,右边数变为九。

2024-02-08 19:55:26 646

原创 贪心算法中关于重叠区间问题的感悟

第一个元素的结束点和第二个元素的开始点相等时是不算相交的,而且在我的思路中,若后一个元素的开始点处于第一个区域中,那么需要判断后一个元素的开始点是否等于区域的开始点,若等于则取结束点较小的区间,若不等于开始点,那么需要判断结束点的大小,哪个小选择哪个。在我这两天的感受中,对区间的排序是解题的关键,能够正确的排序就成功三分之一了。不过想到排序的方法很重要,有的是按照开始点从小到大排列,有的是按照从大到小,有的是按照结束节点排序,有的甚至再排过开始点之后还要考虑结束点是从小到大还是从大到小。

2024-02-03 21:53:52 781

原创 项目学习——canvas标签

之后就该使用到drawImage方法:drawImage方法是在canvas标签中绘制图像,需要结合Image方法使用,该方法可以接受不同的参数组合,以实现对图像的缩放、剪切和绘制。canvas在本次项目中是重难点,经过这次项目我对canvas也有了部分认识,学习中没有查canvas标签的名字,因此,我将他称为画布标签。在本次项目中我只用到了2D,因此在这里就不说WebGL了。首先,canvas的宽高与其他标签不同,他的宽高是标签内属性,在我使用的过程中发现,

2024-02-02 15:59:55 479

原创 贪心算法关键点加力扣452用最少数量的箭引爆气球解析

设使用箭数res初始为1,从第二个气球开始遍历,判断左端点是否在l和r组成的区间内,如果在,那么左区间取原来的l值和当前遍历气球的左端点的最大值,右区间取原来r值和当前遍历起球右端点的最小值;如果不在,那么l等于当前气球开始点,r等于当前气球结束点,使用箭数res加一。思路:使用最少的箭数,就是每箭引爆相对更多的气球,为什么不是绝对更多的呢,因为如果按照绝对更多,那么假设总共有6个气球,中间重叠区域有4个气球,左边重叠三个,右边重叠三个,如果先射中间,那么需要3箭,如果左右各射一箭,那么只需要两箭。

2024-02-02 10:53:52 646

原创 对贪心算法的理解

55. 跳跃游戏、45.跳跃游戏II ,我发现思路好像没有想象中的那么通畅,对思维逻辑有着很强的锻炼效果,比如122这道题,如果只是盯着数组中大数和小数来看的话是很难有思路的,对于我来说我不仅思路阻塞而且思想也阻塞了,只考虑到每一天只进行买或者卖一种操作,完全没想到一天内可以同时买卖,这也直接到这我做不出这道题。还有就是55和45这两道题,看着非常想,甚至最后答案都十分类似,但就是那么细小的差距,一旦想不出来,那么这两道题就写不出来。之后要注意思路的方向,对于算法来说思路不正确可以说根本是做不对的。

2024-01-31 20:07:22 365

空空如也

空空如也

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

TA关注的人

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