快乐码原

写代码要讲究,用化劲!

你需要知道的Diff算法

同系列文章请查看:Github:pre-interview Diff算法提到这个算法,就必须说一下关于Key的事情了。 其实每个组件中的每个标签都会有一个key, 只不过有的必须显示的指定,有的可以隐藏。 如果生成的render出来后就不会改变里面的内容,那么你不需要指定key(不指定key时,React也会生成一个默认的标识),或者将index作为key,只要key不重复即可。 但是......

HTTP缓存

同系列文章请查看:Github:pre-interview HTTP缓存前言通过本文,你将了解到http缓存机制是怎样的,no-cache到底有没有缓存,地址栏回车,F5,ctrl+F5的区别,以及当下较为推荐的缓存方案等。 说明阅读前提:http缓存主要针如css,js,图片等更新频率不大的静态文件。 首先得先明确这个概念,不然以下的概念以及例子,都会显得不太有意义,或者不是那么完美。......

CDN:内容分发网络

同系列文章请查看:Github:pre-interview CDN(Content Delivery Network):内容分发网络 CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。 在不同地域的用户访问......

重排(Reflow)与重绘(Repaint)

同系列文章请查看:Github:pre-interview 重排(Reflow)与重绘(Repaint)必要前置知识:06_浏览器渲染原理 补充瞻仰巨佬:从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系! 概览浏览器下载完页面所有的资源后,就要开始构建DOM树,与此同时还会构建渲染树(Render Tree)。(其实在构建渲染树之前,和DOM树同期会构建Style Tre......

ES6~ES12

同系列文章请查看:Github:pre-interview ES6(ES2015)1.1 块级作用域​ ES6之前没有块级作用域,ES5的var没有块级作用域的概念,只有function有作用域的概念,ES6的let、const引入了块级作用域。 ​ ES5之前if和for都没有作用域,所以很多时候需要使用function的作用域,比如闭包。 1.1.1 什么是变量作用域​ ......

浏览器存储

同系列文章请查看:Github:pre-interview 浏览器存储前言随着移动网络的发展与演化,我们手机上现在除了有原生 App,还能跑“WebApp”——它即开即用,用完即走。一个优秀的 WebApp 甚至可以拥有和原生 App 媲美的功能和体验。WebApp 优异的性能表现,有一部分原因要归功于浏览器存储技术的提升。cookie存储数据的功能已经很难满足开发所需,逐渐被WebSt......

浏览器原理

同系列文章请查看:Github:pre-interview 浏览器原理概览:浏览器的解析渲染过程1)解析 HTML 构建DOM树 2)解析 CSS 构建CSSOM树 3)利用上面两个树构建渲染树(渲染树的节点即为“渲染对象”) 4)渲染对象被创建并添加到树中,它们并没有位置和大小,所以当浏览器生成渲染树以后,就会根据渲染树来进行布局(也可以被称作“回流”),这一阶段浏览器要做的事情是要弄......

JS数据类型

同系列文章请查看:Github:pre-interview JS有哪些数据类型Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。 谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。......