- 博客(26)
- 收藏
- 关注
原创 三次握手、四次挥手
终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接。PS:ACK、SYN和FIN这些大写的单词表示标志位,其值要么是1,要么是0;ACK 当ACK=1时,确认号字段才有效。ACK=0时,确认号无效。ack、seq小写的单词表示序号。
2023-12-22 15:07:15
407
原创 算法中常用知识点
对 slice()和 substring()而言,第二个参数是提取结束的位置(即该位置之前的字符会被提取出来),区别是slice第二个参数支持负数索引,substring第二个参数负数会作为0。fromCharCode()方法用于根据给定的 十进制/UTF-16 码元创建字符串中的字符。这3个方法都返回调用它们的字符串的一个子字符串,而且都接收一或两个参数。slice()、substr()和 substring()。对 substr()而言,第二个参数表示返回的子字符串数量。
2023-07-25 17:47:42
68
原创 网络安全TLS/SSL、数字证书
公钥和私钥是配对的,通过公钥加密的数据,只有通过私钥才能解密,所以在建立安全传输之前,客户端和服务器端之间需要互换公钥。客户端发送数据时要通过服务器端的公钥进行加密,服务器端发送数据时则需要客户端的公钥进行加密,如此才能完成加密解密的过程,签名过程需要CA的证书和私钥参与,最终颁发一个带有CA签名的证书。CA的作用是为站点颁发证书,且这个证书中具有CA通过自己的公钥和私钥实现的签名。8、签名证书是一环一环地颁发的,但是在CA那里的证书是不需要上级证书参与签名的,这个证书我们通常称为根证书。
2023-06-28 15:37:39
177
原创 cookie、session、token介绍及对比
HTTP 是一种无状态的协议,它没有办法区分多次的请求是否来自于同一个客户端,无法区分用户而产品中又大量存在的这样的需求,所以我们需要通过 会话控制 来解决该问题常见的会话控制技术有三种:1、cookie2、session3、token。
2023-06-28 15:22:57
445
原创 Typescript - 面向对象
面向对象是程序中一个非常重要的思想,它被很多同学理解成了一个比较难,比较深奥的问题,其实不然。面向对象很简单,简而言之就是程序之中所有的操作都需要通过对象来完成。一切操作都要通过对象,也就是所谓的面向对象,那么对象到底是什么呢?这就要先说到程序是什么,计算机程序的本质就是对现实事物的抽象,抽象的反义词是具体,比如:照片是对一个具体的人的抽象,汽车模型是对具体汽车的抽象等等。程序也是对事物的抽象,在程序中我们可以表示一个人、一条狗、一把枪、一颗子弹等等所有的事物。一个事物到了程序中就变成了一个对象。
2023-06-08 14:53:00
81
原创 Typescript - 快速入门
经过一系列的配置,使得TS和webpack已经结合到了一起,除了webpack,开发中还经常需要结合babel来对代码进行转换以使其可以兼容到更多的浏览器,在上述步骤的基础上,通过以下步骤再将babel引入到项目中。编译文件时,使用 -w 指令后,TS编译器会自动监视文件的变化,并在文件发生变化时对文件进行重新编译。默认情况下,编译后的js文件会和ts文件位于相同的目录,设置outDir后可以改变编译后文件的位置。指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错。
2023-06-08 14:51:55
68
原创 async/await 原理
Generator 函数是一个状态机,封装了多个内部状态。执行 Generator 函数会返回一个遍历器对象,可以依次遍历 Generator 函数内部的每一个状态,但是只有调用next方法才会遍历下一个内部状态,所以其实提供了一种可以暂停执行的函数。yield表达式就是暂停标志。调用及运行结果:由结果可以看出,Generator函数被调用时并不会执行,只有当调用next方法、内部指针指向该语句时才会执行,即函数可以暂停,也可以恢复执行。
2023-06-05 15:24:57
760
原创 flutter、rn、uni-app比较
flutter => Googleuni-app => Dcloudrn => Facebookwebview、react native/weex、flutter,复杂度依次降低,渲染性能依次上升。webview和weex都内置了,可选择是界面库,纯排版引擎,绘制文字、按钮、图片等常用界面控件特点是简单、高性能使用dart语言,嵌套复杂.(是否可以通过一种预编译的dsl来简化写法 => 从严格转换为松散是简单的,从松散转换为严格几乎是不可能的)逻辑层与视图层统一,运
2022-01-13 16:55:29
5565
1
原创 rxJS
rxJS概述Observable (可观察对象): 表示一个概念,这个概念是一个可调用的未来值或事件的集合。Observer (观察者): 一个回调函数的集合,它知道如何去监听由 Observable 提供的值。Subscription (订阅): 表示 Observable 的执行,主要用于取消 Observable 的执行。Operators (操作符): 采用函数式编程风格的纯函数 (pure function),使用像 map、filter、concat、flatMap 等这样的操作符来处
2021-02-16 23:51:14
254
原创 JS算法 -- 持续更新
[[1,2], [3,4]] => [1,2,3,4]答案:[].concat([1,2], [3,4])[].concat(…[[1,2], [3,4]])[].apply(null, [[1,2], [3,4]])
2020-06-08 23:21:10
103
原创 前端最强优化
vue 优化合理是有v-if,v-show使用computed(缓存)keep-activedestroy销毁自定义事件,自定义监听,定时器组件、路由懒加载webpack优化优化打包效率:output: contentHash,内容不变就不重新打包[‘babel-loader?cacheDirectory’] 给babel-loader加缓存,只要es6代码没改,不...
2020-04-25 19:25:32
290
原创 关于浏览器和http的细枝末节
PS:Apache的默认Etag包含Inode,Mtime,Size三部分.而且Etag有强弱之分.比如一般的弱Etag,是以W/开头的,如:W/”abcde12”,这部分不是我们关注的焦点.因为弱Etag和强Etag的区别只在于算法.比如某种弱Etag关注的时间精度,为秒.而我们在项目中,最常见的做法是使用MD5.是一种忽略时间维度的,强Etag.为的是保证精确度.以及负载均衡设备的同步.除非我们的项目有特殊需求.但是往往我们可以根据需求,来调整算法.而不是沿用一些传统的弱Etag算法.
2020-04-04 18:15:51
386
原创 前端常见的坑
click点击事件延时300ms、穿透表现监听元素 click 事件,点击元素触发时间延迟约 300ms。点击蒙层,蒙层消失后,下层元素点击触发。为什么会产生 click 延时?点击后300ms如果没有继续点击就是单击,如果有点击就是双击Safari会有双击缩放,APP中单机都会产生300ms的延迟为什么会产生 click 点击穿透?双层元素叠加时,在上层元素上绑定 touc...
2020-03-19 22:11:35
177
原创 CSS的一生
五种布局方式静态布局 特点: 元素的尺寸一律使用px,宽度使用min-width,小屏横滚动,大屏居中显示 缺点:不能随着屏幕尺寸变化而变化流式布局 特点:主要宽度划分区域使用%,高度使用px, 会随着屏幕的分辨率适配调整,但整体布局不变 缺点:尺寸跨度大的时候会不能正常显示自适应布局 特点:使用@media根据不同的分辨率范围切换不同的布局,大小不变,位置变化 ...
2020-03-12 11:32:58
151
原创 深入解析柯里化
概念只传递给函数一部分参数调用它,返回一个函数去处理剩下的函数优点参数复用function add (a) { return function (b) { return function (c) { return a + b + c } }}let add1 = add(1)console.log(add1(2)(3)) // 6console.log(add...
2020-03-09 23:36:47
93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人