- 博客(35)
- 收藏
- 关注
原创 常见的排序算法(6种)
一般当数据有序或者局部有序的时候会出现这种坏的情况,比如数组正序或者逆序,(数字完全相同的时候也是有序的特殊情况)。解决方法: 选pivot的时候可以随机选,而不是每次选第一个或者最后一个。ps : 稳定性:排序后 2 个相等键值的顺序和排序之前它们的顺序相同。对子数组进行快排序的时候可以先扫描一遍,如果子数组有序就不用再快排了。需要掌握的点为排序的。
2023-10-07 11:00:07
44
原创 面试题websocket
Sec-WebSocket-Key是一串base64编码,Sec-WebSocket-Accept通过公开的算法将其转换为另一串字符串,浏览器也用同样的公开算法将base64码转成另一段字符串,如果这段字符串跟服务器传回来的字符串一致,那验证通过。后续就可以用websocket进行通信。payload长度有效防止TCP粘包,存放的是我们真正想要传输的数据的长度,单位是字节,payload长度到底是使用7位还是后面的也使用,要根据最前面7位payload长度字段中的数值判断。http定时轮询和长轮询实现。
2023-09-25 14:21:14
592
原创 手写观察者模式和发布订阅模式
在观察者模式中,只有两种主体:目标对象 (Subject) 和 观察者 (Observer)。在观察者模式中,Subject对象拥有添加、删除和通知一系列 Observer 的方法等,而 Observer 对象拥有 update 更新方法等。在 Subject对象添加了一系列 Observer 对象之后,Subject 对象则维持着这一系列 Observer 对象,当有关状态发生变更时Subject 对象则会通知这一系列 Observer 对象进行更新。
2023-09-24 00:32:50
87
原创 cookie,session和token
Session翻译为会话,服务器为每个浏览器创建的一个会话对象,浏览器在第一次请求服务器,服务器便会为这个浏览器生成一个Session对象,保存在服务端,并且把Session的Id以cookie的形式发送给客户端浏览,而以用户显式结束或session超时为结束。访问规则:顶级域名只能设置或访问顶级域名的Cookie,二级及以下的域名只能访问或设置自身或者顶级域名的Cookie,所以如果要在多个二级域名中共享Cookie的话,只能将Domain属性设置为顶级域名。表示可以访问此cookie的页面路径。
2023-09-22 01:31:55
290
原创 async和await原理
co 函数库约定,yield 命令后面只能是 Thunk 函数或 Promise 对象,而 async 函数的 await 命令后面,可以跟 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操作)。4)返回值是promise。这比Generator 返回函数是Iterator对象方便许多,直接可用then实现进一步操作,然后我们就会使用到then的语法糖await命令。Generator 函数的执行必须靠执行器,所以才有了 co 函数库,而 async 函数自带执行器。
2023-09-20 22:52:23
188
原创 setTimeout/setInterval定时不准确的原因及解决方法
Web Worker 的作用,就是为 JavaScript 创造多线程环境,允许主线程创建Worker线程,将一些任务分配给后者运行。这样的好处是,一些计算密集型或高延迟的任务,被 Worker 线程负担了,主线程(通常负责 UI 交互)就会很流畅,不会被阻塞或拖慢。setTimeout和setInterval的第二个参数并不是回调函数执行的时间,而是js将回调函数加入任务队列的时间,真正执行代码的时间是不能保证的,取决于何时被主线程的事件循环取到,并执行。带有时间修正和清除定时器功能。
2023-09-18 02:02:22
1389
转载 React类组件中this的指向
onClick中的this是指向类组件实例对象的,所以可以在实例对象的原型上找到handleClick方法,当点击该按钮后,handleClick方法中的this则会变成undefined。在react的类组件中,render中的this默认是指向类组件实例对象的,因此点击事件上绑定的this是指向实例对象的。使点击事件中调用方法的this指向实例对象的三种方法。或者在constructor中绑定。
2023-05-25 16:27:15
238
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人