- 博客(26)
- 收藏
- 关注
原创 TCP四次挥手
TCP四次挥手详解一、四次挥手的过程如上图所示,TCP四次挥手的过程为客户端进程发出连接释放的报文,并且停止发送数据。报文的内容为,结束标志位FIN = 1, 序列号seq = u。 报文发送完成后,客户端由ESTABLISHED状态进入FIN-WAIT-1状态。(注意,TCP规定FIN报文即使不携带数据,也要消耗一个序列号)服务器收到连接释放的报文后,发出确认报文。报文内容为,确认标志位ACK = 1, 确认号Ack = u+1, 序列号seq = v。报文发送完成后,服务器由ESTABLIS
2021-08-09 22:54:01
311
原创 JavaScript中的继承
JavaScript中的继承参考文章 https://zhuanlan.zhihu.com/p/110175302下图是JS中继承的分类图。如图所示,JS中继承可以按照是否使用object函数将继承分成两部分(Object.create是ES5新增的方法,用来规范化这个函数)。其中,原型链继承和原型式继承有一样的优缺点,构造函数继承与寄生式继承也相互对应。寄生组合继承基于Object.create, 同时优化了组合继承,成为了完美的继承方式。ES6 Class Extends的结果与寄生组合继承基
2021-07-15 15:58:11
254
原创 Vue Router
Vue Routervue router 是vue.js的官方路由管理器。一、路由首先,简单的讲一下路由。路由是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由提供两种机制,即路由和转送。路由中有路由表,其本质上是映射表,决定着数据包的指向。随着前端发展阶段的变换,路由也在变化。第一个阶段是只有后端阶段。页面由后端渲染。网页在后端经过jsp、php等被渲染好后,从服务器直接传输过来。此时应用的是后端路由,由后端处理URL和页面之间的关系。第二个阶段是前后端分离阶段。页面由前端渲染
2021-06-30 20:27:36
364
原创 vuex的原理
每天一个前端面试题之 vuex的原理当我想要去理解底层原理,想要去理解源码的时候,真的还是遇到了很多困难的,总觉得怎么理解也理解不透彻。所以这一篇我尽量的写清楚自己的理解,但是仍然有些地方是写不清楚的。随着后续的学习,会继续补充的!一、vuex简介Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。那什么时候用vuex呢?Vuex 可以帮助我们管理共享状态,并附带了更多的概念和框架。这需要对
2021-06-29 17:07:19
596
原创 图片懒加载的原理
每天一个前端面试题之 图片懒加载的原理图片懒加载是指当图片进入可视区后再加载。对于包含很多图片的网站,图片懒加载可以减轻服务器的压力,提高用户体验一、图片懒加载的原理在HTML中,图片是由 <img> 标签引入的,是由其中的src属性去请求的。所以实现懒加载的关键就是,在图片没有进入可视区的时候,不给src属性赋值,等图片进入到了可视区,再给src属性赋值,去请求图片。二、图片懒加载的实现思路首先看一张图,帮助我们判断图片什么时候进入了可视区。图中,scrollTop 表示元素
2021-06-24 23:00:01
2808
2
原创 常见的Web前端攻击
每天一个前端面试题之 Web前端攻击一、CFRS跨站请求伪造,Cross-site request forgery,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。简单来说,CFRS是攻击者盗用合法用户的身份,向服务器发送请求。对服务器来说发送的请求是完全合法的,但是这却完成了攻击者的期望操作。要完成一次CFRS攻击,受害者必须依次完成以下两个操作:登陆受信任网站A,并在本地生成cookie在不登出网站A的情况下访问危险网站B
2021-06-02 10:51:07
766
原创 TCP三次握手
每天一个前端面试题之 TCP三次握手传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP协议中,主动发起请求的一端为客户端,被动连接的一端称为服务端。不管是客户端还是服务端,TCP连接建立完成后都能发送和接收数据,所以TCP也是一个全双工的协议。文章目录每天一个前端面试题之 TCP三次握手一、TCP标志符集头字段1.标志符2.部分头字段二、TCP连接建立的过程三、一些问题1.为什么是三次握手,不是二次握手或者四次
2021-05-28 17:20:36
452
原创 CSS实现三角形
每天一个前端面试题之 用CSS作出三角形一、通过border和transparent实现这么做的原理是因为:CSS是这样给盒子添加边框的: width: 50px; height: 50px; border-top: 30px solid red; border-right: 30px solid blue; border-bottom: 30px solid green; border-left: 30px solid yellow;可以看到两个相邻边框处CS
2021-05-25 21:17:29
862
原创 Http的请求过程及DNS域名解析
每天一个前端面试题之 Http的请求过程和详解DNS域名解析所谓HTTP的请求过程,就是从输入url到浏览器显示页面的过程。主要包括以下几个部分:1、对输入的URL进行DNS域名解析,拿到IP地址。2、根据拿到的IP地址,向对应的WEB服务器建立TCP连接。通过三次握手建立TCP连接3、浏览器向服务器发起Http请求。HTTP请求报文4、服务器处理请求,并将处理结果返回给浏览器。服务器响应报文5、关闭TCP连接。通过四次挥手关闭TCP连接。6、浏览器渲染引擎工作,
2021-05-25 10:11:49
2023
原创 HTTP状态码
每天一个前端面试题之 HTTP的状态码有哪些HTTP状态码是用以表示网页服务器超文本传输协议响应状态的3位数字代码。简单来说,当浏览器向服务器发送请求时,服务器会返回一个包含HTTP状态码的头信息用以响应浏览器的请求。文章目录每天一个前端面试题之 HTTP的状态码有哪些一、以1开头的HTTP状态码二、以2开头的状态码三、以3开头的状态码四、以4开头的状态码五、以5开头的状态码一、以1开头的HTTP状态码消息: 代表请求已被接受,需要继续处理。这类响应式临时响应,除非在某些试验条件下,服务器
2021-05-23 22:35:58
212
原创 Vue的生命周期
每天一个前端面试题之 Vue的生命周期函数文章目录每天一个前端面试题之 Vue的生命周期函数一、什么是Vue的生命周期二、Vue生命周期的作用是什么三、每个周期具体适合哪些场景一、什么是Vue的生命周期Vue官网是这样解释的:每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。vue实例是独立的,每一个v
2021-05-21 16:35:18
581
原创 Vue的响应式原理
每天一个前端面试题之vue的响应式原理vue的官网对vue的响应式原理进行了这样的描述:Vue 最独特的特性之一,是其非侵入性的响应式系统。数据模型仅仅是普通的 JavaScript 对象。而当你修改它们时,视图会进行更新。这使得状态管理非常简单直接,不过理解其工作原理同样重要,这样你可以避开一些常见的问题。那么vue的响应式到底是什么呢?简单来说,就是当数据发生变化时,视图会自动的更新,不需要我们进行繁琐的DOM操作。要弄清楚vue的响应式原理,就要弄懂以下两个问题:1.vue内部是怎样监
2021-05-19 20:39:26
237
转载 CSS选择器的权重
每天一个前端面试题之 CSS选择器的权重首先,CSS样式的引入有三种方式,行间样式,内联样式,外联样式。其权重为 行间样式>内联样式>外联样式其次,CSS的选择器有以下类型: 1)id选择器(#id) 使用ID选择器之前需要先在html文档中的元素添加id名称,这样在样式选择器中才能找到相对应的元素,不同的是id选择器是一个页面中唯一的值,我们在类使用时是在相对应的类名前加上一个“.”号(.className)而id选择器是在名称前使用"#"如(#id)。 2)类选择器(.c
2021-05-13 18:02:12
2409
原创 MVVM软件架构模式
每天一个前端面试题之 MVVM软件架构模式一、MVVM的定义MVVM是model view view-model的简写,即模型-视图-视图模型,是一种软件架构模式。view: 视图层,即用户界面。其主要功能是定义用户界面的结构。model: 数据模型,后端的各种数据,主要围绕数据库展开。其主要功能是用于支持应用程序中的views。view-model: 视图模型层,是整个MVVM软件架构的核心,是连接view和model的桥梁。其主要功能是通过数据绑定,将后端传递的数据转化为所能看到
2021-05-13 16:49:58
895
原创 javascript中的进程和线程
每天一个前端面试题之 javascript中的进程和线程首先,给出进程和线程的定义:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一
2021-05-11 21:29:44
690
原创 虚拟DOM
每天一个前端面试题之 虚拟DOM一、浏览器渲染引擎的工作流程在了解虚拟DOM之前,先来讲一讲浏览器渲染引擎的工作流程。下图是webkit渲染引擎的工作流程。从上图中分析,浏览器渲染引擎的工作流程分为5步:1.创建DOM树: 浏览器会将HTML解析成一个DOM树,DOM 树的构建过程是一个深度遍历过程:当前节点的所有子节点都构建好后才会去构建当前节点的下一个兄弟节点。2.创建StyleRules: 将CSS解析成 CSS Rule Tree,生成页面的样式表 。3. 创建Render树: 将D
2021-05-10 21:19:54
420
原创 跨域的形成及解决办法
每天一个前端面试题之 跨域一、跨域的形成跨域 是指浏览器不能执行其他网站的脚本。它是由浏览器的 同源策略 造成的,是浏览器对javascript施加的安全措施。同源策略 是指:URL的协议,域名、端口都相同。只要其中有一个不同,便会产生跨域。二、跨域的解决方法1.跨域资源共享(CORS)CORS是官方的跨域解决方案,支持get,post等请求。跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的 Web 应用被
2021-05-09 17:32:59
298
3
原创 HTTP和HTTPS
每天一个前端面试题之 HTTP和HTTPS一、HTTPHTTP是超文本传输协议,是用于从WWW服务器传输超文本到本地浏览器的传送协议。HTTP永远都是客户端发起请求,服务端返回响应。HTTP的原理:客户端的浏览器首先通过网络与服务端建立连接,该连接是同过TCP完成的。连接建立后,客服端发送一个请求给服务端,请求的格式为 统一资源标识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。服务端接收到请求后,给予响应信息,包括信息的协议版本号、一个成功或错误的代码
2021-05-07 22:14:34
352
原创 javascript的事件循环机制
每天一个前端面试题之 javascript的事件循环机制每天一个前端面试题之 javascript的事件循环机制前言异步任务有哪些执行栈任务队列任务队列的分类例子和分析每天一个前端面试题之 javascript的事件循环机制这个概念是学习javascript的必备,当时学习的时候只是简单的了解,现在也是在看了多篇博客和其他参考资料以后自己总结一下,希望能够达到更深入的理解和认识。前言javascript是一门单线程的非阻塞的脚本语言单线程是指javascript在代码执行的时候,同一时间只能做
2021-05-06 12:14:30
168
原创 DOM事件流
每天一个前端面试题之 DOM事件流一、DOM事件流是什么?首先明确一点,javascript和HTML的交互式通过事件完成。事件就是文档或浏览器窗口发生的一些特定的交互瞬间,事件流描述的是事件接收传播的过程、二、DOM事件流的三个阶段1.事件捕获阶段事件捕获的思想是不太具体的DOM节点先先接收到事件,而最具体的节点应该最后接收到事件。事件捕获的用意在于:事件到达预定的节点之前就捕获它。2.当前目标阶段正正的目标节点正在处理事件的阶段。3.事件冒泡事件冒泡的思想是由最具体的元素(嵌套层次最深
2021-05-05 11:03:54
481
原创 CSS实现盒子垂直居中
每天一个前端面试题之 CSS实现盒子的垂直居中一,flex布局主要是给父元素进行相应的设置 #father{ display: flex; justify-content: center; align-items: center; width: 500px; height: 500px; border: 1px solid black; } #son{ width: 100px;
2021-05-01 11:22:54
174
原创 javascript中的闭包
每天一个前端面试题之 javascript中的闭包提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer);
2021-04-30 22:53:58
223
1
原创 JS的基本数据类型及数据类型的检测方法
每天一个前端面试题之 JS的数据类型及数据类型的检测方法目录每天一个前端面试题之 JS的数据类型及数据类型的检测方法一、基本数据类型二、引用类型1.引入库2.读入数据总结一、基本数据类型基本数据类型又称为原始数据类型,主要有以下几种数字类型,Number可以表示32位整数及64位的浮点数。数字类型的最大值是 Numbe.MAX_VALUE。Infinity为无穷大。NaN为非数字。字符串类型,String由一系列的Unicode字符、数字和标点组成。其中Unicode字符在内存中占两
2021-04-30 10:33:19
291
原创 IEEE PDF Express 报错Font Helvetica, Times-Roman is not embedded
一、IEEE PDF Express 报错最悲惨的是同一个地方跌倒两次,去年这个时候,我就遇到了这个问题,经过百度的广泛搜索,终于解决了。然而今年我又遇到了同样的问题…立马哭唧唧,这才认识到了写博客的重要性!如果去年我就记录下来了,就不用再去苦苦追寻了。好在对解决方法还有一定的记忆,所以很容易就搜索到了解决方案。先把原网址放上,以表示感谢。https://bbs.youkuaiyun.com/topics/370192261二、具体报错内容未嵌入Helvetica和TimesNewRomanPS系列字体,
2021-04-19 15:58:35
1791
1
原创 力扣142环形链表II
力扣环形链表II题目:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。你是否可以使用 O(1) 空间解决此题?看到这个题的第一个想法就是:找个哈希表,将遍历过的元素一个个都记录下来就好了呀,等遇到相同的就返回。var detectC
2021-04-15 09:45:13
142
原创 Latex对设置文字颜色或设置文字高亮显示
Latex对设置文字颜色或高亮显示问题设置文字的颜色设置文字高亮问题最近在修改论文,要求将修改的部分的文字添加颜色或者将文本设置为高亮显示,经过一些查询自己在这里总结一下。设置文字的颜色首先在文档开头引入\usepackage{color, xcolor}使用时直接\textcolor{color}{text}这样,得到的text便是设置的color的颜色。设置文字高亮首先在文档开头引入\usepackage{color, xcolor}\usepackage{soul}\so
2021-04-13 19:02:50
16293
8
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅