路旁有花,心中有歌,
天上有星。
Data Structure
2021.06.17
使用数组构建堆结构的过程和原理: heapify()函数的含义和代码,构建起始位置和过程等。 1. 堆结构的特点 一个完全二叉树,如果每一个父节点值都大于等于(或小于等于)它子节点的值,则这个二叉树称为一个堆。 大顶堆:任一父节点值大于子节点值(最大值在根节点) 小顶堆:任一父节点值小于子节点值(最小值在根节点) 2. 数组构建堆结构过程 对于一个任一数组...
JavaScript
2021.06.01
window.requestAnimationFrame API的功能:精确控制函数在重绘前时间节点执行。 1. 有关浏览器重绘机制的几个事实 大多数浏览器会限制重绘频率,一般不大于屏幕刷新率60Hz; 浏览器发生重绘的时机不确定,但是两次重绘时间间隔一定不小于(1/60)s,也就是大约16ms; requestAnimationFrame API传入一个函数,控制...
JavaScript一些内置API: 跨文档通信API、FIle API、媒体元素API、拖放API、Page Visibility API、Performance API、Web组件 API 、Observer API 1. 跨文档通信API 主要是全局对象的postMessage()方法。 用于窗口间通信,或工作线程之间的通信。 1.1 postMessage()方...
观察器API: Mutation Intersection Observer、Mutation Observer、Mutation Observer 1. MutationObeserver是做什么的 MutationObserver 可以监视DOM文档的变化,并在变化时执行相应的回调操作。 2. 基本用法 MutationObserver的基本用法如下: ① 创建...
2021.05.22
几种JS继承方式和优缺点 1、2、3是有构造函数参与的继承,4、5、6是无构造函数参与的单纯对象间的继承。 1. 原型链继承 SubType.prototype = new SuperType(); 核心: 子类构造函数的prototype属性,设置为父类的实例。 缺点: ① 所有子类实例的原型,都引用着同一个父类实例A。一旦这个父类实例A上有引用类型属性值obj,一...
JS数组遍历方法的性能对比 试验了几种方法: for正向遍历; for反向遍历; for…of 遍历; while循环; forEach方法; map方法; for…in遍历; 结果如下:(10000000元素数) 可见,性能从优到劣: for循环遍历最快,逆向比正向更快; while循环次之; forEach、map...
Network
2021.05.21
DNS的解析流程 DNS(Domain Name System)域名系统,就是把人们好记的计算机域名与对应的IP地址相互转换的系统。 应用很少直接使用DNS,一般都是间接使用。但是DNS是应用层的一个核心服务。 互联网的域名结构 任何一个连接到互联网的主机或路由器,都有一个唯一的层级结构的名字,称为域名。 域(domain)是一个命名空间中可被管理的划分。从级别上可以划分为...
Drops
2021.05.08
前端杂项记录 1. position: absolute相对谁定位 如果被position为非static的父元素包裹,则相对于最近的这类父元素。如果没有,则相对于html根元素。 2. 如何在高分辨率的屏幕画1px的Border 4. 浏览器渲染页面的流程 6. 函数柯里化如何实现 7. 实现响应式布局的方法 8. CSS的层级关系,Z-index 9. CSS ...
HTTP
2021.05.05
HTTP缓存: 强缓存与协商缓存 一、HTTP缓存 HTTP缓存针对HTTP响应报文,一般只对GET和HEAD方法响应报文有效。(POST响应在罕见特殊配置下也可以缓存,具体见MDN) HTTP缓存可以存在于浏览器本地,也可以存在于代理服务器。 1. 缓存相关的首部行 1.1 强缓存 优先级从高到低: Pragma -> Cache-Control -> E...
Algorithm
2021.05.04
记录刷题过程中的常犯错误。 1. for、while循环 while循环中,循环终止条件一般应该是一个绝对值,而不是在循环体内修改的变量组成的相对值。 // 下面这个循环是死循环,因为cur+k在不断地增加。 while (cur < cur+k){ //...codes cur++ } if条件尽量不要连写,如果连续写多个if表达式,需...
2021.05.03
总是搞混,这里记录一下。 Object.prototype 中的方法 hasOwnProperty(key): 检测字符串属性key,是否是对象自身的内部属性(纯自身内部,不包括从原型继承的属性); key in obj 这种形式,如果key在obj的原型中,也会返回True。 isPrototypeOf(obj): 检测对象是否在obj的原型链中; ...
cookie
localStorage
sessionStorage
indexedDB
2021.05.02
浏览器端、服务器端储存数据的几种方式:cookie,session,localStorage,sessionStorage,indexedDB 全面整理,包含以前的笔记。 一、Cookie 1. Cookie的作用 HTTP是无状态协议。Cookie的存在,是为了让服务器能识别连接过它的用户,从而在响应上针对性地采取一些友好措施。 比如一个购物网站,如果服务器无法识别客...
异步请求
跨域
前端发送http请求,跨域、跨页面通信的几种方式梳理 Refer: 阮一峰CORS 一、发送异步Http请求几种方式; 二、跨域问题; 一、发送异步Http请求的几种方式 1. 原生Ajax 实例化XMLHttpRequest对象; 绑定xhr对象状态变化监听函数; 打开xhr对象; 发送http请求。 let xhr = new XML...
HTTPS协议内容、TLS握手过程 HTTP协议的缺点 HTTPs协议 2.1 加密方式:对称与非对称加密 2.2 HTTPs的加密方式 2.3 数字证书: 公钥的真实性问题 2.4 HTTPs的通信过程 2.5 HTTPs的缺点?...
Vue
2021.04.29
Vuex 用于统一管理Vue app中各组件的状态,好处有二: ① 避免了属性父传子,子改父的麻烦操作。尤其是组件数目多、嵌套深的情况。 ② 可以统一拦截修改状态的操作,从而进行一些记录,做到修改状态有迹可循,方便查错维护。 Store 仓库 vuex通过创建Store,并作为插件应用在Vue app实例上,来达到统一管理app实例中组件状态的目的。 import ...
Vue3 新特性 1. 组合式API 组合式API让代码更加紧凑,逻辑相关的代码可以写在一起。 2. 支持TS 本身用TS重写,组件对TS全面支持。 3.
SSR(Server Side Render)和CSR (Client Side Render)的各种优缺点 参考:Vue-SSR 什么是SSR,CSR CSR就是客户端渲染,用户在请求的时候,获取到的是一个只包含各种容器的几乎空白HTML和一个包含全部逻辑的JS,然后在客户端浏览器执行JS,进行各种请求,填充HTML容器来展示完整页面。 SSR就是服务端渲染,HTML已经...
2021.04.27
创建一个新的Vue app的整个流程,及各类型对象的API,和他们之间的交联关系梳理。 创建一个Vue app整体流程梳理 Vue模块中暴露的API有哪些? 这些API都可以从vue中直接导入获取。 import { <api> } from 'vue' 渲染 createApp:传入根组件配置对象,创建应用实例,并返回创建的应用实例。 crea...
规范
2021.04.25
什么是RESTful规范?如何设计使用RESTful API? 参考: 阮一峰网络日志 RESTful架构是什么? RESTful架构,是目前最流行的一种互联网软件架构。(REST:Representational State Transfer 表现状态转化) 通俗理解: ① 资源在HTTP请求URI中定义 URI代表资源,资源是原始的数据,不带有表现形式。 ② 表现...
2021.04.21
源文件目录: packages/runtime-core/src/vnode.ts packages/runtime-core/src/h.ts Vue组件实现模板解析渲染的几种方式 单文件组件(SFC)中,Vue组件可以使用定义渲染模板; 任何组件都可以通过配置中tempalte property传入模板字符串定义渲染模板; 定义render()方法,...
Page 4 Of 8