数字常用方法 发表于 2021-11-24 | 分类于 数据类型 原型方法 Number.isFinite()用来检查一个数值是否为有限的(finite),即不是Infinity。 Number.isNaN()用来检查一个值是否为NaN。 Number.parseInt() Number.parseFloat() ES6 将全局方法parseInt()和p ... 阅读全文 »
HTTPS加密过程简介 发表于 2021-11-24 | 分类于 HTTP 简洁易懂 详细介绍 https加密过程详细介绍,其中用到堆成加密和非对称加密和CA数字证书 用户在浏览器发起HTTPS请求(如 juejin.cn),默认使用服务端的443端口进行连接; HTTPS需要使用一套CA数字证书,证书内会附带一个公钥Pub,而与之对应的私钥Private保留在服务端 ... 阅读全文 »
递归链表翻转 发表于 2021-10-24 | 分类于 算法 递归链表翻转给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。 示例 1: 12输入:head = [1,2,3,4,5]输出:[5,4,3,2,1] 示例 2: 12输入:head = [1,2]输出:[2,1] 示例 3: 12输入:head ... 阅读全文 »
三次握手、四次挥手 发表于 2021-10-24 | 分类于 HTTP 转载 三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了。 见过比较典型的面试场景是这样的: 面试官:请介绍下三次握手 求职者:第一次握手就是客户端给服务器端发送一个报文,第二次就 ... 阅读全文 »
prefetch和preload 发表于 2021-10-20 | 分类于 性能优化 转载自 使用 Preload&Prefetch 优化前端页面的资源加载 对于前端页面来说,静态资源的加载对页面性能起着至关重要的作用。本文将介绍浏览器提供的两个资源指令-preload/prefetch,它们能够辅助浏览器优化资源加载的顺序和时机,提升页面性能。 一、从一个实例开始 如上图所 ... 阅读全文 »
深入执行上下文 发表于 2021-09-29 | 分类于 javascript , 执行上下文 转载于 https://github.com/mqyqingfeng/Blog 执行上下文栈顺序执行?如果要问到 JavaScript 代码执行顺序的话,想必写过 JavaScript 的开发者都会有个直观的印象,那就是顺序执行,毕竟: 123456789101112131415var foo & ... 阅读全文 »
性能指标 发表于 2021-09-20 | 分类于 性能优化 CLSCumulative Layout Shift 累积布局偏移 最常见的影响CLS的分数的有: 未指定尺寸的图片 未指定尺寸的广告、嵌入元素、iframe 动态插入内容 自定义字体(引发FOIT/FOUT) 在更新DOM之前等待网络响应的操作 未指定尺寸的图片总而言之:在 和 ... 阅读全文 »
性能指标 发表于 2021-09-20 | 分类于 性能优化 性能指标在chrome的devtools里有很多性能指标,下面简单介绍一下这些指标 首先是可以在chrome的performance中标识的指标 DCL (DOMContentLoaded Event) 当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发 ... 阅读全文 »
从ECMAScript规范解读this 发表于 2021-09-19 | 分类于 javascript , this 这一小节比较晦涩难懂,目前简单的了解一下就行,有需要再深入研究转载于 https://github.com/mqyqingfeng/Blog/issues/7 当JavaScript代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution conte ... 阅读全文 »
浏览器缓存原理 发表于 2021-08-24 | 分类于 HTTP 转载 一、浏览器缓存基本认识分为强缓存和协商缓存 浏览器在加载资源时,先根据这个资源的一些http header判断它是否命中强缓存,强缓存如果命中,浏览器直接从自己的缓存中读取资源,不会发请求到服务器。比如某个css文件,如果浏览器在加载它所在的网页时,这个css文件的缓存配置命中了强缓存,浏览 ... 阅读全文 »