- 博客(57)
- 收藏
- 关注
原创 红包-算法
要记得这里toFixed是将数字取二位小数转为字符串,转为字符串后然后要用parseFloat又转为数字,进行res求和。对最后一个数要进行特殊处理。
2025-04-02 22:14:23
139
原创 请求头中的Origin和Referer
Referer:用于告诉服务器用户是从哪一个页面链接跳转过来的(上一页的url)Origin:主要用于跨域请求,告诉服务器请求来自哪个站点。
2025-03-31 09:56:43
88
原创 lc-二叉树vs链表
二叉树:root与root.left、root.right。二叉树:用root.left或者root.right。链表:用p.next。链表要注意有时加守卫头节点解题。1、链表:p与p.next。
2025-03-29 10:48:38
106
1
原创 lc-链表总结之哨兵节点
怎么用,通过let dummy = new ListNode(val,next=head)的方式,最后return时,必须return dummy.next,而不是head。算法需求中存在需要改变头节点的时候需要哨兵节点。
2025-03-28 23:42:51
205
原创 项目复盘:websocket不受跨域限制的原理
1、WebSocket 是独立于 HTTP 的应用层协议,通过 HTTP 建立连接后,完全脱离 HTTP 语义约束。类似于下述代码,当浏览器发起 WebSocket 连接时,会自动将当前网页的源(协议+域名+端口)填入。注:虽然目前服务端不做白名单校验也能成功,但为了安全还是要做一下di~服务端可以用下列代码进行验证以防恶意操作。不受 HTTP 同源策略限制。不依赖 CORS 头机制。
2025-03-28 22:03:23
409
原创 react中usestate的异步更新与useStateVSuseRef
用useref代替usestate,或者结合useref与usestate。2、适用于一次调用想联系调三次setcount的,让count从0加到3。3、适用于想让从莫接口获取到的boolean值与声明的状态变量绑定。1、适用于只想打印出来的stat。直接在useeffect来打印。
2025-03-27 10:41:18
376
原创 FP与FCP与白屏
FCP 延迟:通常反映渲染阻塞或内容生成问题(JS执行、数据获取等)FP 延迟:通常反映网络或解析问题(HTML/CSS还未下载完成)业务人员一般用FP来分析白屏问题,通过骨架屏等优优化手段来进行容器白屏降噪。FP:开始渲染白色背景时(用户可能感知不到)FCP:当第一个文字或图片出现时。FCP:第一个内容元素渲染时。FP:背景色渲染完成时。
2025-03-26 11:16:01
99
原创 文件的分片上传vs流失上传
将文件分成多个固定大小的块(chunk),逐块上传到服务器。支持断点续传,服务器可以记录已上传的分片。:将文件以流的方式逐步读取并上传到服务器。通常基于长连接(如 WebSocket)。前端手动将文件分片,后端接收并合并分片。文件是逐步读取和上传的,无需手动分片。每个分片是独立的,可以乱序上传。适合实时传输,内存占用低。逐步读取文件并上传。
2025-03-24 00:06:13
163
原创 二进制无法通过json传输给后端
适合中小文件,WebSocket 或 REST API。是multipart/form-data。适合小文件,JSON 或文本协议。适合大文件,HTTP 表单上传。1、转为用base64格式。3、转为form-data。
2025-03-23 22:29:43
77
原创 前后端开发中,图片上传到不同格式(二进制数据ORbase64编码)
适合大文件(如高清图片、视频)。适合小文件(如图标、头像)。实现简单,适合快速开发。1、base64编码。性能更好,节省带宽。
2025-03-23 21:49:04
183
原创 leetcode-234-回文链表
思路:初始化数组,将链表中每个节点的val值全部拷贝到数组里,数组可根据双指针由两头向中间循环移动,若遍历过程中两个指针指的字符不同,则返回false,否则继续遍历直到遍历完成返回true。,请你判断该链表是否为回文链表。给你一个单链表的头节点。
2025-03-23 13:11:07
198
原创 求最长回文串-409
思路:题目求给定字符串中可以构造出来的最长回文串,回文串是由回文中心以及其他字符对构成,且回文中心的数量可为0或1,第一种情况回文串由字符串对构成(回文中心没有)第二钟情况回文串由一个回文中心和其他字符串对构成(回文中心由一个字符构成)则用map、set可做。我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。可以构造的最长回文串是"a",它的长度是 1。给定一个包含大写字母和小写字母的字符串。题目:leetcode-409。不能当做一个回文字符串。通过这些字母构造成的。
2025-03-23 13:03:28
171
原创 leetcode-回文类题-647-求字符串中 回文子串 的数目
思路:找出回文中心 向两边延申,判断是否是回文字符串,每移动一次res++;这是因为aca是回文子串,bacab也是回文子串,且要考虑边界值,使用方括号 [] 访问超出范围的索引会返回 undefined。要用charAt去处理l和r为负数的情况。6个回文子串: "a", "a", "a", "aa", "aa", "aaa"三个回文子串: "a", "b", "c"是字符串中的由连续字符组成的一个序列。是正着读和倒过来读一样的字符串。,请你统计并返回这个字符串中。1、回文子串-647。
2025-03-23 12:49:09
198
原创 单向数据流与双向绑定
优点:代码量减少,操作更方便(表单操作,双向绑定更优,简化了代码),个人认为双向绑定适用局部处理,就是针对个别场景,不适合太复杂的大项目。优点:数据流更清晰,只有唯一的入口和出口,数据状态变化都能被记录、被跟踪,易于维护,调试也很方便,顺藤摸瓜,适用于大型复杂项目,缺点:数据流转比较混乱,不止一处修改入口,难以调试,不易维护。缺点:代码量多了一点,表单校验这种,有时就会比较繁琐。双向绑定 = 单向绑定 + UI事件监听。
2025-03-21 22:03:12
112
原创 浏览器对一个资源设置了缓存,如何清除缓存,且后续请求不命中缓存
来定位资源,忽略掉查询参数,所以浏览器加上查询参数的url和不加的url访问得到的东西是一样的。缓存资源,如果url发生变化(比如加了查询参数),浏览器会认为这是一个新的资源,从而重新请求。原理:1、在资源的url后添加一个查询参数,通常是一个版本号或时间戳,路径:`/path/to/resource`方式3、服务器端设置缓存头(需服务器端配合)域名:`example.com`片段标识:`#section`eg:如下图,添加了查询参数。协议:`https://`方式2、修改资源url。
2025-03-16 15:28:13
310
原创 Json实现深拷贝的缺点
2、如果obj里有RegExp(正则表达式的缩写)、Error对象,则序列化的结果将只得到空对象;4、如果obj里有NaN、Infinity和-Infinity,则序列化的结果会变成null。1、如果被拷贝对象中的属性有时间对象的话,拷贝出来会为字符串,将不再是对象。
2025-03-15 23:05:25
266
原创 js数组最后追加一个数组元素和放在最前面的时间复杂度
在数组开头插入元素时,需要将所有现有元素向后移动一位,为新元素腾出空间。2、unshift是O (n)1、push是O(1),
2025-03-15 16:14:03
111
原创 leetcode105为什么可以root.left可以截取到前序遍历二叉树的(0,index),而不是(1,index+1)
原因在于preoder.shift()会改变原数组,已经把preoder的第一个队头元素已经排除出去了!这里以105前序和中序遍历构造二叉树为例,106同理。306题中的截取后续遍历中用pop()同理。
2025-03-15 12:03:27
158
原创 useEffect的执行是异步的
useeffect不会阻塞渲染,会在组件渲染完成之后异步执行。渲染之后提交阶段执行这个useeffect中的代码。// 这里会在渲染完成后异步执行。// 这里会在渲染阶段同步执行。会打印出component 再打印出useeffect。若需同步 可用uselayouteffect。
2025-03-12 16:14:13
151
原创 二分查找法右指针的位置为什么要初始化为res.length,而不是res.length-1
因为考虑到边界值,若res数组为0,即右指针若初始化为0-1=-1的情况下,right会被初始化为-1,是为了确保二分查找的范围始终有效,即使。
2025-03-12 07:41:05
79
原创 常见的Content-Type值
application/x-www-form-urlencoded表示数据是以URL编码的形式发送的,即键值对被转换成key=value的形式,并用&连接。当用户在网页上填写表单并提交时,浏览器会使用application/x-www-form-urlencoded编码方式将表单数据编码,并通过HTTP请求发送给服务器。application/x-www-form-urlencoded: 这是MIME类型,表示数据被编码为键值对,并且这些键值对是通过&字符分隔的。在Web开发中,我们经常需要发送表单数据。
2025-03-12 06:56:10
434
原创 解决react中函数式组件usestate异步更新
问题:在点击modal组件确认后 调用后端接口,使用setstateone(false)使modal组件关闭,但是设置后关闭不了,在设置setstateone(false)前后打印出了对应的stateone都为true,但是在useeffect中打印出来的为false,3、在useeffect设置,依赖项为stateone,然后设置值setstatetwo(stateone)2、设置modal组件开关方法,绑定为setstateone(false)解决方案:把组件状态的更新值赋值给另一个变量,加一层传导。
2025-02-07 16:10:43
452
原创 前端使用代理服务器proxy实现跨域
对于DEV环境下的请求,如果发送了一个请求到/api/some-endpoint,实际的请求应该被代理到 http://xxxxxx.cxxxx.xxx.xxx.net/api/some-endpoint。
2025-02-03 23:22:33
274
原创 前端中报错404
域名要换 不能在用户中心的应用(假设域名为zzxusers.dev.ali.net:8885)中访问账户中心(trans)的接口。
2025-02-03 22:49:29
86
原创 设置了token为请求头中的Authoration字段,触发了非简单请求导致预检,即一次触发两次同名请求,but我的问题是:预检200已经成功返回,第二个请求仍然跨域
问后端,是后端的问题!后端没有设置前端跨域方面的一些设置。
2025-02-02 15:17:15
91
原创 设置请求拦截器获取token,发现登录接口登录不上
原因登录时不需要token,登录时若走请求拦截器这条路,则走不通。设置请求拦截器时,排除掉登陆接口。
2025-02-02 15:13:03
92
原创 企业前后端开发中,后端返回为‘true‘或‘false‘,前端该如何渲染
1、若把===改为==,来进行判别,则无法达到目的,因为'false'!2、必须这样改,严格校验,将false改为字符串'false'
2024-12-30 13:36:05
203
原创 Render Prop详解
Render Prop是一种在React中复用逻辑的设计模式,通过将渲染逻辑交由外部控制,实现了组件之间的逻辑复用。它的灵活性和解耦特性使其适合在特定场景下复用逻辑,但也需要注意性能和代码可读性的问题。
2024-11-01 09:11:59
667
原创 let声明变量和闭包解决var引起的定时器输出打印五个5
问题:下述代码执行后只能输出五个5,因为var声明的变量没有块级作用域,以及settimeout是异步的,所以无法达到期望。之前碗发现用let可以解决这个问题,今天也发现可以用闭包来解决,特此来写一篇文章。解决方法1:用let解决。解决方法2:用闭包解决。
2024-10-22 18:49:16
222
原创 v-show为什么基于display:none,而不是visibility: hidden
v-show只是想要在页面上控制元素的可见,而不是dom树上, 所以是基于display:none的。
2024-10-06 10:50:00
284
原创 ==和===对于对象的比较
在 JavaScript 中,==和===都用于比较,但它们之间有关键区别,但是在比较对象时没有区别,共同点是都要求两个对象要指向同一块内存地址才可视为相等。
2024-10-05 18:54:11
257
空空如也
为什么按钮点击多用防抖,节流是不是更合适一点
2025-03-16
前端网页访问图片会跨域吗
2024-10-25
react路由底层用了js的什么特性
2024-10-14
vue双向数据绑定与数据响应式
2024-09-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人