自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP的四个拥塞控制算法

并非指完全能够避免拥塞,而是指在拥塞避免阶段将拥塞窗口控制为按现性规律增长,使网络比较不容易出现拥塞。发送方一旦收到3个重复确认,就知道现在只是丢失了个别的报文段。发送方维护一个叫做拥塞窗口cwnd的状态变量,其值取决于网络的拥塞程度,并且动态变化。,直到当前拥塞窗口的值已经等于慢开始门限值,之后改用拥塞避免算法。指一开始向网络中注入的报文段少,并不是指拥塞控制窗口cwnd增长速度慢。发送方将拥塞窗口作为发送窗口,即swnd = cwnd。cwnd:拥塞窗口 swnd:发送窗口。,发送方判断可能出现拥塞,

2022-09-27 19:19:41 3180 1

原创 TCP和UDP 的区别,TCP/UDP协议相关子协议,为什么要使用三次握手,为什么要四次挥手,TIME_WAIT的意义,为什么是2MSL,拥塞控制,流量控制,超时重传

TCP/UDP,端口号,为什么是三次握手,两次行不行?为什么时四次挥手?TCP拥塞控制,流量控制,2MSL,TIME_WAIT,相关子协议。防止已经失效的连接请求又传送到服务器,造成不必要的错误和资源的浪费。

2022-09-27 16:33:06 1941

原创 JS的执行上下文,变量声明提升,函数声明提升

一句话:执行上下文就是当前JS代码被解析和执行时存在的环境。(ECMAScript中定义的抽象概念),变量声明提升,函数声明提升

2022-09-20 16:34:29 637

原创 原型和原型链

原型和原型链,隐式原型,显式原型,原型的习题,基于对象,javaScript,prototype,_proto_

2022-09-19 12:10:09 426

原创 闭包的定义,原理,应用场景,优点,缺点

闭包的定义,原理,应用场景,优缺点,作用域链,变量提升

2022-09-18 19:27:23 3324

原创 Promise——promise是什么?为什么要用promise?

回调函数嵌套调用,外部回调函数异步执行的结果是嵌套的回调的执行的条件。});});});},

2022-08-01 16:34:29 348

原创 Vue——详解MVVM模型在vue中的使用

MVVM模型在vue中的作用双向绑定

2022-07-07 16:38:22 616

原创 Vue——vue中的双向数据绑定

v-bind实现单向数据绑定特点:只能从data流向页面v-model实现双向数据绑定特点:不仅可以从data流向页面,也能从页面表单元素(输入元素)流向data

2022-07-07 16:08:02 124

原创 React组件通信

分类:实现步骤:举例:子组件获取父组件的数据:结果如图:根据单向数据流(单向往下传,不能修改)的要求,子组件只能读取props中的数据,不能进行修改。props可以传递任意数据数字,字符串,布尔值,数组,对象,函数,JSX(一块模板)举例:浏览器显示:控制台显示:对props进行解构赋值,会使写法更加简洁写法一:写法二:效果还和以前一样但是写法简洁了子传父,实质上是子组件调用父组件传递过来的函数,将要传递给父组件的数字据作为函数的实参传入。举例:点击按钮,控制台打印出子组件传递给父

2022-06-16 09:40:16 583

原创 Vue核心知识

目录Vue简介Vue的基本使用引入Vue直接引入CDNNPM方法Vue CLI 脚手架启动项目实例的创建实例的挂载模板语法插值语法指令强制数据绑定 v-bind(:)绑定事件监听 v-on:click(@click)v-once一次性插值v-htmlHTML属性中的值应使用v-bind指令表达式计算属性和监视计算属性computed使用计算属性实现双向绑定computed vs methods监视属性watch()methods VS watch VS computedclass与style绑定条件语句遍历

2022-06-14 22:28:47 846

原创 React Hooks(钩子函数)

首先:React的组件创建方式,一种是类组件,一种是纯函数组件。React团队认为组件的最佳写法应该是函数,而不是类。但是纯函数组件有着类组件不具备的特点:这就注定,纯函数组件只能做UI展示的功能,如果涉及到状态的管理与切换,我们就必须得用类组件或者redux,但是在简单的页面中使用类组件或者redux会使代码显得很重。因此,React团队设计了React hooks(钩子)。React Hooks的意思是:组件尽量写成纯函数,如果需要外部功能和副作用,就用钩子把外部代码“钩”进来。四种常用的钩子:我们知道

2022-06-14 22:14:33 7449

原创 节流(throttle)

原理:n 秒内只运行一次,若在 n 秒内重复触发,只有一次生效代码:节流的分类节流分为时间戳和定时器两种。时间戳版:index.html文件:throttle.js文件:定时器版:index.html文件同上throttle.js文件:时间戳和定时器双剑合璧版:index.html文件同上throttle.js文件:完整优化版:index.html文件同上throttle.js文件:...

2022-06-08 20:39:41 1077

原创 防抖(debounce)

通俗理解:A和B说话,A一直bbbbbb,当A持续说了一段时间的话后停止讲话,过了10秒之后,我们判定A讲完了,B开始回答A的话;如果10秒内A又继续讲话,那么我们判定A没讲完,B不响应,等A再次停止后,我们再次计算停止的时间,如果超过10秒B响应,如果没有则B不响应。举例:事件响应函数在一段时间后才执行,如果在这段事件内再次调用,则重新计算执行时间;当预定的时间内没有再次调用该函数,则执行dosomething函数。防抖的分类防抖分为立即防抖和非立即防抖:立即防抖:多次触发事件,第一次会立即执行函数

2022-06-08 19:02:41 1262

原创 Vue —— watch和watchEffect的区别

目录前言watch和watchEffect的对比watchwatchEffect深度解析watch函数深度解析watchEffect函数watchEffect与computed前言watch函数与watchEffect函数都是监听器,在写法和用法上有一定区别,是同一功能的两种不同形态,底层都是一样的。watch和watchEffect的对比watchwatch显式指定依赖数据,依赖数据更新时执行回调函数具有一定的惰性lazy 第一次页面展示的时候不会执行,只有数据变化的时候才会执行监视ref

2022-05-31 22:58:27 12056 3

原创 Vue —— 创建响应式对象的四种方式对比(reactive、ref、toRef、toRefs)

目录一、reactive二、ref三、reactive对比ref四、toRef五、toRefs六、一些问题一、reactivereactive方法根据传入的对象,创建返回一个深度响应式对象(Proxy代理对象)。reactive 会对传入对象进行包裹,创建一个该对象的Proxy代理对象。它是源对象的响应式副本,不等于原始对象。它==“深层”==转换了源对象的所有嵌套property(属性),解包并维持其中的任何ref引用关系。响应式对象属性值改动,不管层级有多深,都会触发响应式。新增和删除属

2022-05-31 15:24:42 3733

原创 react、vue中的key有什么作用?(key的内部原理)

目录1. 虚拟DOM中key的作用:2. 对比规则:3. 用index作为key可能会引发的问题:4. 开发中如何选择key?1. 虚拟DOM中key的作用:虚拟DOM对象的标识,当状态中的数据发生变化时,Vue会根据【新数据】生成【新的虚拟DOM】。随后Vue进行【新虚拟DOM】与【旧虚拟DOM】的差异比较,比较规则如下:2. 对比规则:(1)旧虚拟DOM中找到了与新虚拟DOM相同的key:若虚拟DOM中内容没变,直接使用之前的真实DOM!若虚拟DOM中的内容变了,则直接生成新的真实D

2022-05-27 20:48:48 200

原创 get请求和post请求的区别

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-05-23 21:03:54 397

原创 Vue Router 路由实现原理

目录一、概念二、两种实现方式HashHistory简介特点方法HashHistory.push()HashHistory.replace()HTML5History简介特点方法history.pushState()history.replaceState()三、两种模式比较一、概念通过改变URL,在不重新请求页面的情况下,更新页面视图。二、两种实现方式更新视图但不重新请求页面,是前端路由原理的核心之一,目前在浏览器环境中这一功能的实现主要有2种方式:Hash—利用URL中的hash(“#”);

2022-05-23 20:15:40 1305 1

原创 HTTP缓存——强制缓存和协商缓存

目录为什么需要缓存?什么是缓存?缓存的原理:缓存的分类强制缓存Expires**expires的不足:**cache-Controlcache-control的属性协商缓存Last-Modified和If-Modified-Since**Last-Modified的不足**:ETag和If-None-Match**ETag的不足:**缓存决策树为什么需要缓存?在任何一个前端项目中,访问服务器获取数据都是很常见的事情,但是如果相同的数据被重复请求了不止一次,那么多余的请求次数必然会浪费网络带宽,以及延迟浏

2022-05-19 18:22:12 2805 2

原创 webpack5打包vue项目

目录写在前面(webpack四大核心)entry(入口)loader(加载器)plugin(插件)output(出口)webpack打包vue项目初始化项目vue-loaderwebpack-dev-server(配置开发服务器)加载css sass文件加载图片加载图片使用别名extensions省略文件路径proxy代理优化美化打包进度条打包输出指定文件夹es6转es5压缩压缩js压缩图片压缩html压缩css完整代码写在前面(webpack四大核心)entry(入口)entry是一切的起点,同故宫

2022-05-17 17:15:07 2043

原创 Node.js(五)—— 内置模块之net模块和http模块

目录前言net模块简介:TCP与ICP的异同serversocket示例:http模块简介:创建最基本的web服务器request请求对象response响应对象net模块和http模块的区别前言什么是客户端,什么是服务器?在网络节点上,负责消费资源的电脑,叫做客户端;负责对外提供网络资源的电脑,叫做服务器。net模块简介:net模块是用于创建基于流的TCP和IPC协议的服务器和客户端TCP与ICP的异同TCP/IP-传输控制协议/网际协议地址;可在同一台机器或不同机器或不同操作系统的进程间进

2022-05-12 10:49:48 1477

原创 Node.js(四)—— 内置模块之path路径模块

目录path简介path.join()path.basename()path.extname()path简介path模块是 **Node.js官方提供的、用来处理路径的模块。**它提供了一系列方法和属性,用来满足用户对路径的处理。比如:path.join()方法,用来将多个路径片段拼接成一个完整的路径字符串。path.basename()方法,用来从路径字符串中,将文件名解析出来如果要在JavaScript代码中,使用path模块处理路径,则需要使用如下方式导入:const path =

2022-05-11 20:33:08 374

原创 Node.js(三)—— 内置模块之fs

目录fs模块简介fs.readFile()fs.writeFile()fs.copyFile()用fs.readFile()和fs.writeFile()实现fs.copyFile()fs.unlink()fs.mkdir()fs.rmdir()fs模块简介fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,来满足用户对文件的操作需求。如果要在JavaScript代码中使用fs模块来操作文件,则需要使用如下的方式导入:const fs = require('fs')

2022-05-11 18:02:35 1123

原创 Node.js(二)—— Buffer缓冲区

目录Buffer简介(全局变量,无需引入)Buffer.alloc(size,[filal],[encode]) 创建一个Buffer实例Buffer.from([ ]/buffer/string):创建一个buffer,包含参数字节Buffer.isBuffer(obj):判断obj是否为一个buffer类型buffer.toString(encode):将buffer类型转换为字符串Buffer简介(全局变量,无需引入)Buffer类被引入作为Node.js API的一部分,使其可以在TCP流或文件

2022-05-11 16:51:39 462

原创 ECMAScript、JavaScript、Node.js的区别与联系

目录ECMAScriptJavaScriptNode.jsJavaScript 和Node.js 的联系JavaScript和Node.js的区别ECMAScript定义了语法,这是写JavaScript和node.js都必须遵守的。- 语法包含变量定义,循环、判断、函数、原型和原型链,作用域和闭包、异步不能操作DOM,不能监听click事件,不能发送ajax请求不能处理http请求,不能操作文件ECMAScript仅仅是一个语法规范JavaScript使用JavaScript语法规范

2022-05-11 15:30:53 269

原创 Node.js(一)——什么是node?node和浏览器的区别?node能干什么?

Node什么是Node?Node和浏览器的区别是什么?Node可以干什么?什么是Node?Node和浏览器的区别是什么?Node可以干什么?

2022-05-11 14:47:11 349

原创 JS fetch()用法详解

目录了解fetch没有fetch时我们获取异步资源的方式:使用fetch后我们获取异步资源的方式fetch的语法fetch的Response对象1.同步属性2.判断请求是否成功发出3.操作标头4.读取Response对象内容的方法5.创建副本(clone)6.底层接口定制HTTP请求取消fetch请求了解fetch- Fetch API 提供了一个获取资源的接口(包括跨域请求),用于取代传统的XMLHttpRequest的,在 JavaScript 脚本里面发出 HTTP 请求。- 目前还没有被所有

2022-05-11 11:28:49 46029 2

原创 JS XMLHttpRequest对象详解

概念创建XMLHttpRequest对象建立连接发送get请求发送post请求异步响应状态readyState终止请求abort()获取XML数据获取和设置头部信息概念XMLHttpRequest对象,顾名思义:是基于XML的HTTP请求,是一个浏览器接口,XMLHttpRequest 用于在后台与服务器交换数据。我们通过XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL获取数据。创建XMLHttpRequest对象var xhr = new XMLHttpRequest().

2022-05-09 17:21:36 9380

原创 Ajax,Fetch,Axios,XMLHttpRequest 对象是什么?XMLHttpRequest、fetch、axios,Ajax之间的关系

概念一、Ajax是什么?二、Fetch是什么?三、Axios是什么?四、什么是 XMLHttpRequest 对象?四者之间的关系概念一、Ajax是什么?英文全称为 Asynchronous JavaScript + XML ,翻译过来就是异步JavaScript和XML(被设计用来传输和存储数据)。Ajax是一种技术方案,但并不是一种新技术。它是用来描述一种使用现有技术集合的“新”方法的,这里的“新”方法主要涉及到: HTML 或 XHTML、CSS、 JavaScript、DOM、XML、X.

2022-05-09 16:04:07 482

原创 前端解决跨域问题的常见方法及优缺点对比

解决跨域问题的方案一、什么是跨域?什么是同源策略?二、常见的跨域场景三、跨域问题常见解决方案1.JSONP跨域(一)原理(二)示例前端代码:后端代码:(三)JSONP的优缺点2. 跨域资源共享(CORS)(一)什么是CORS(二)简单请求和非简单请求简单请求CORS请求设置的响应头字段,都以 Access-Control-开头非简单请求预检请求预检请求的回应(三)示例前端代码:后端代码:(四)CORS的优缺点3.nodejs中间件代理跨域(一)原理(二)示例前端代码:中间件服务器代码:(三)nodejs中间

2022-05-09 11:44:09 2131

原创 Node基础——express接口获取request参数的三种方式

express接口获取request参数的三种方式一、req.query()二、req.params()三、req.body()一、req.query()req.query()可以用来获取接口请求中拼接在链接"?"后边的参数,主要用于get请求,post请求也适用。req.query()被express原生支持,并且会自动将参数转换为对象形式返回。例如:请求:app.get('http://localhost:5050/server?p=user&q=password').then(re

2022-04-26 22:29:34 4314

原创 URI和URL的区别与联系

解析URI和URL之间的区别与联系一、URI1.什么是URI2.URI的组成二、URL1.什么是URL2.URL的组成三、URI和URL之间的区别。四、通俗理解一、URI1.什么是URIURI:统一资源标识符,表示Web上每一种可用的资源,如HTML文档,图像,视频片段,程序等都是由一个URI进行标识的。2.URI的组成通常由三部分组成:(1) 资源的命名机制;(2)存放资源的主机名;(3)资源自身的名称。注:以上三点是对实例的解释,并不是URI的必要条件,URI只是一种概念,怎样实现无所

2022-04-26 17:05:02 26478 3

原创 二叉树——求最大节点和最小节点

function Node(value,left,right){ this.value = value; this.left=left; this.right=right;}function Tree(){ this.root = null;}//二叉树代码实现,添加节点Tree.prototype.add=function(value){ //判断树有没有根节点 let node = new Node(value,null,null);

2022-04-14 18:31:05 1146

原创 二叉树——前序、中序、后序遍历

前序遍历根 -> 左 -> 右Tree.prototype.prevOrder=function(){ let stack = [];//表示栈 let values=[];//values存储的是节点的值 if(this.root==null){ return; } stack.push(this.root);//让根节点入栈 while(stack.lenght>0){ let currentNode

2022-04-14 18:15:10 768

原创 计算机网络——https

https详解HtTTPS介绍HTTPS 主要作用HTTPS 和 HTTP 的区别HTTPS 和 HTTP 的工作过程区别HTTP 包含动作:HTTPS中SSL 包含动作:HTTPS 加密方式非对称加密过程:客户端向服务器获取公钥的方式HtTTPS介绍HTTP 协议通常承载于 TCP 协议之上,在 HTTP 和 TCP 之间添加一个安全协议层(SSL 或 TSL),这个时候,就成了我们常说的 HTTPS.HTTPS 主要作用对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;

2022-04-14 17:46:17 764

原创 计算机网络——http 2.0

http 2.0前言一. 介绍1.1 什么是SPDY协议1.2 HTTP1.X的缺点二. 二进制分帧三. 首部压缩四. 多路复用五. 请求优先级六. 服务器推送前言HTTP2.0大幅度的提高了web性能,在HTTP1.1完全语义兼容的基础上,进一步减少了网络的延迟。实现低延迟高吞吐量。对于前端开发者而言,减少了优化工作。本文将重点围绕以下几点新特性的作用、工作过程以及如何更出色的完成了优化工作来介绍HTTP2.0二进制分帧首部压缩多路复用请求优先级服务器推送一. 介绍HTTP/2是HT

2022-04-14 17:17:41 716

原创 计算机网络——http1.x详解

http1.x详解Http1.xhttp1.0http1.1Http1.x缺陷:线程阻塞,在同一时间,同一域名的请求有一定数量限制,超过限制数目的请求会被阻塞http1.0缺陷:浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个 TCP 连接(TCP 连接的新建成本很高,因为需要客户端和服务器三次握手),服务器完成请求处理后立即断开 TCP 连接,服务器不跟踪每个客户也不记录过去的请求;解决方案:添加头信息——非标准的 Connection 字段 Connection: keep

2022-04-14 17:06:32 188

原创 http——三次握手四次挥手

httphtttp:TCP三次握手四次挥手(TCP连接的释放)htttp:超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。TCP传输控制协议(TCP,Transmission Control Pro

2022-04-13 19:34:22 4858

原创 JS——设计模式

设计模式一、什么是设计模式?二、常用的设计模式有哪些?有缺点是什么?1.单例模式2.装饰模式3.观察者模式一、什么是设计模式?设计模式是针对软件开发中经常遇到的一些设计问题,根据基本的设计原则,总结出来的一套实用的解决方案或者设计思路。二、常用的设计模式有哪些?有缺点是什么?经典的设计模式有 23 种。随着编程语言的演进,一些设计模式(比如 Singleton)也随之过时,甚至成了反模式,一些则被内置在编程语言中(比如 Iterator),另外还有一些新的模式诞生(比如 Monostate)创建型

2022-04-13 17:55:09 296

原创 JS——判断变量类型方法汇总

判断变量类型一、使用typeof判断变量类型二、使用instanceof判断变量的类型三、使用constructor判断变量的类型四、使用Object.prototype.toString.call判断变量的类型五、使用jquery中$.type判断变量的类型。六、总结在JS中,有 5 种基本数据类型和 1 种复杂数据类型.基本数据类型有:Undefined, Null, Boolean, Number和String;复杂数据类型是Object,Object中还细分了很多具体的类型,比如:Array,

2022-04-12 20:22:36 3373

空空如也

空空如也

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

TA关注的人

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