12 2020 档案
摘要:1 什么是尾调用? 尾调用( Tail Call )是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。 function f(x){ return g(x); } 上面代码中,函数 f 的最后一步是调用函数 g ,这就叫尾调用。 以下三种情况,都不
阅读全文
摘要:前言 如果你是一名 JavaScript 开发者,或者想要成为一名 JavaScript 开发者,那么你必须知道 JavaScript 程序内部的执行机制。执行上下文和执行栈是 JavaScript 中关键概念之一,是 JavaScript 难点之一。 理解执行上下文和执行栈同样有助于理解其他的 J
阅读全文
摘要:这篇文章试着聊明白这一堆看起来挺复杂的东西。在聊之前,大家要始终记得一句话:一切前端概念,都是纸老虎。 不管是Vue,还是 React,都需要管理状态(state),比如组件之间都有共享状态的需要。什么是共享状态?比如一个组件需要使用另一个组件的状态,或者一个组件需要改变另一个组件的状态,都是共享状
阅读全文
摘要:转自:https://juejin.cn/post/6844903613584654344 typeof 实现原理 typeof 一般被用于判断一个变量的类型,我们可以利用 typeof 来判断number, string, object, boolean, function, undefined,
阅读全文
摘要:基本概念 事件代理(Event Delegation),又称之为事件委托。是JavaScript中常用绑定事件的常用技巧。顾名思义,“事件代理”即是把原本需要绑定在子元素的响应事件(click、keydown......)委托给父元素,让父元素担当事件监听的职务。事件代理的原理是DOM元素的事件冒泡
阅读全文
摘要:ES6为Array增加了from函数用来将其他对象转换成数组。 当然,其他对象也是有要求,也不是所有的,可以将两种对象转换成数组。 1.部署了Iterator(迭代器)接口的对象,比如:Set,Map,Array。 2.类数组对象,什么叫类数组对象,就是一个对象必须有length属性,没有lengt
阅读全文
摘要:目录 完整的握手 当客户端和服务器端初次建立TLS握手时(例如浏览器访问HTTPS网站),需要双方建立一个完整的TLS连接,该过程为了保证数据的传输具有完整性和机密性,需要做很多事情,密钥协商出会话密钥,数字签名身份验证,消息验证码MAC等,整个握手阶段比较耗时的地方是密钥协商,需要密集的CPU处理
阅读全文
摘要:1. 实现代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div></div> </bod
阅读全文
摘要:一、简介 1、postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档、多窗口、跨域消息传递 2、postMessage(data,origin)方法接受两个参数: (1)data:要传递的数据,html5规范中提到该参数可以是JavaScript的任意基本类型
阅读全文
摘要:webSoket用来实现双向通信,客户端和服务端实时通信。 webSoket优点和缺点: 优点:对于前端来说,使用简单,功能灵活,如果部署了webSocket服务器,可以实现实时通信。 缺点:需要服务端技术的支持,如果websocket数据量比较大的话,会严重消耗服务器的资源。 例子: 1 webs
阅读全文
摘要:转自:https://www.zhihu.com/question/34074946 参考:https://www.jianshu.com/p/ff8f0bd78942 参考:https://www.cnblogs.com/lydialee/p/5227074.html 参考:https://www
阅读全文
摘要:一 前提: 1. 证书存在的目的就是避免中间人攻击,避免发生经典的传令兵问题。2. 证书都是由CA组织下认可的根证书Root签发的(其中有两种形式,第一种是该组织有一个Root,每一家的Root Ca都需要其签名,该方案基于利益考量几乎没人采用,而是第二种方案,每家都有自己的Root CA 可以自签
阅读全文
摘要:HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。 HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。 TCP
阅读全文
摘要:HTTP与TCP/IP区别? TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。 下面的图表试图显示不同的TCP/IP和其他的协议在最
阅读全文
摘要:转自:https://blog.csdn.net/doujinlong1/article/details/82051986 目录 一,RSA 数学理论基础 二,RSA实现原理 三,RSA加密的过程 引言 在密码学最开始,都是使用的普通加密模式 A 用加密规则加密了字符串m 然后发给B B 用A的加密
阅读全文
摘要:ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例。 1. 当同一组件内部,有多处ref引用值相同的情况时,this.$refs[ref名称]指向文档流中靠下的
阅读全文
摘要:go(-1): 原页面表单中的内容会丢失; this.$router.go(-1):后退+刷新; this.$router.go(0):刷新; this.$router.go(1) :前进 back(): 原页表表单中的内容会保留; this.$router.back():后退 ; this.$ro
阅读全文
摘要:安卓端:前两位为不透明度值,后6位为颜色值; web端:前面6位为颜色值,最后两位是不透明度值。 如:
阅读全文
摘要:一、常见定位方案 在讲 BFC 之前,我们先来了解一下常见的定位方案,定位方案是控制元素的布局,有三种常见方案: 普通流 (normal flow) 在普通流中,元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新
阅读全文
摘要:CSS继承可定义为特定的css属性向下传递到子孙元素,就是指被包在内部的标签将拥有外部标签的样式,即子元素可以继承父元素的属性。 一、能继承的属性 1. 字体系列属性:font、font-family、font-weight、font-size、font-style;2. 文本系列属性:(1)内联元
阅读全文
摘要:1.content-box(标准盒模型) Chrome浏览器box-sizing默认是content-box,content-box就是元素的width和height决定了元素的宽高,这意味着元素的border和padding等不能算在元素的width和height中 ,padding和border
阅读全文
摘要:详情: grid布局:http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html flex布局:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html 问题:怎么让一个 d
阅读全文
摘要:#诞生背景DNS请求虽然占用了很少的带宽,但会有很高的延迟,尤其以移动网络会更加明显。通过dns预解析技术可以很好的降低延迟 在firefox上使用dns-prefetch,dns预解析是与页面加载是并行处理的,且不用影响到页面加载的性能. 在以图片为主移动网站被访问时,在使用DNS预解析的情意中下
阅读全文
摘要:我们知道,css文件引入方式有两种:1. HTML中使用link标签 <link rel="stylesheet" href="style.css" /> 2.CSS中@import @import "style.css"; 第一种方式最为常见最为主流,第二种方式则很少见到有人这么写,因而也常被开发
阅读全文
摘要:参考1:https://coolshell.cn/articles/9666.html#comments 参考2:https://blog.fundebug.com/2019/01/03/understand-browser-rendering/ 思维导图 浏览器工作大流程 从上面这个图中,我们可以
阅读全文
摘要:一、前言 缓存可以说是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。 对于一个数据请求来说,可以分为发起网络请求、后端处理、浏览器响应三个步骤。浏览器缓存可以帮助我们在第一和第三步骤中优化性能。
阅读全文
摘要:Set 和 Map 主要的应用场景在于 数据重组 和 数据储存 Set 是一种叫做集合的数据结构,Map 是一种叫做字典的数据结构 一、 集合(Set) ES6 新增的一种新的数据结构,类似于数组,但成员是唯一且无序的,没有重复的值。 Set 本身是一种构造函数,用来生成 Set 数据结构。 new
阅读全文
摘要:函数防抖和节流,都是控制事件触发频率的方法。应用场景有很多,输入框持续输入,将输入内容远程校验、多次触发点击事件、onScroll等等。例子:鼠标滑过一个div,触发onmousemove事件,它内部的文字会显示当前鼠标的坐标。 <style> #box { width: 1000px; heigh
阅读全文
摘要:1.右键打开命令编辑窗口: 2.输入命令 git checkout 其他分支 对比目录 3.查看差异
阅读全文
摘要:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> .border-wrapper { position: relative; margin: 100px auto; width: 200px; h
阅读全文
摘要:比如:黑色渐变到白色,代码如下: .gradient{ background: -moz-linear-gradient(top, #000000 0%, #ffffff 100%); background: -webkit-gradient(linear, left top, left botto
阅读全文
摘要:一、并行运行: Promise提供了Promise.all,Promise.race,Promise.allSettled等多个Promise对象间的运行关系,如果并行运行可以用Promise.all来进行处理: const promise1 = Promise.resolve(3); const
阅读全文
摘要:刚开始看 Promise 源码的时候总不能很好的理解 then 和 resolve 函数的运行机理,但是如果你静下心来,反过来根据执行 Promise 时的逻辑来推演,就不难理解了。这里一定要注意的点是:Promise 里面的 then 函数仅仅是注册了后续需要执行的代码,真正的执行是在 resol
阅读全文
摘要:正文 事实上,前端很少涉及对二进制数据的处理,但即便如此,我们偶尔总能在角落里看见它们的身影。 今天我们就来聊一聊前端的二进制家族:Blob、ArrayBuffer和Buffer 概述 Blob: 前端的一个专门用于支持文件操作的二进制对象 ArrayBuffer:前端的一个通用的二进制缓冲区,类似
阅读全文
摘要:参照: https://www.jianshu.com/p/e745787118d0 https://blog.csdn.net/qq_42852004/article/details/105970267 第一步:下载源码并执行npm run dev(源码地址:https://github.com/
阅读全文
摘要:选择切换分支,如果 报git did not exit cleanly (exit code 128) ,选择clean up,清除一下。 完成后,选择切换分支,之后再次切回原分支,即可显示pull。
阅读全文
摘要:导航守卫:路由导航行为被触发时各个阶段所触发的钩子函数 vue-router有哪几种导航钩子( 导航守卫 )? 全局前置守卫: router.beforeEach 全局解析守卫: router.beforeResolve 全局后置钩子: router.afterEach 路由独享的守卫: befor
阅读全文
摘要:electron有主进程和渲染进程,所以调试部分也分为两大块,即调试主进程和渲染进程 一、调试渲染进程 调试渲染进程和调试浏览器的方法基本差不多。在运行electron 应用之后可以通过下面两种方式打开调试工具 1.手动打开 View->Toogle Developer Tools的方式打开如下图:
阅读全文