域名发散 & CDN域名发散由于浏览器的限制,对每个域名的连接数存在上限,一般为 6 个。浏览器做并发限制的主要原因是减小服务器负载和防止 DDos 攻击。域名发散(domain sha...

HTTP

DNS 解析什么是 DNS在数据网络中,使用数字 IP 地址标记设备以便通过网络发送和接收数据。 大多数用户无法记住此数字地址。 于是,人们创建了可以将数字地址转换为简单易记名称的域名系统。域名...

HTTP

Grid 布局网格布局网格布局(Grid Layout)是一个基于网格的二维布局系统,而 flexbox 布局则是一维的。.grid-container { display: grid | i...

CSS

Flex 布局伸缩盒伸缩盒(Flexible Box) 模型如下,flex 布局由父级容器 flex container 及其下一级子元素 flex items 构成。/* To use fle...

CSS

页面生命周期页面事件的生命周期: DOMContentLoaded 事件在 DOM 树解析完成后被触发。 load 事件在页面所有资源被加载完毕后触发。 beforeunload 在用户即...

HTML

加载阻塞CSS阻塞CSS 属于 render blocking resource,无论外链或内联,都会阻塞渲染树的渲染。一般情况下,CSS 会延迟脚本执行和 DOMContentLoaded 事...

HTML

页面渲染渲染步骤根据 Webkit 渲染引擎工作流可总结以下五个步骤,即关键渲染路径: HTML Parser 将 HTML 解析成 DOM; CSS Parser 将 CSS 解析成 CS...

HTML

闭包什么是闭包闭包(closure) 个人认为一定要遵循两个条件: 函数嵌套,且内层函数持有外层函数的变量 内层函数在外层函数所在作用域外被调用// 创建闭包的常见方式,就是在一个函数内部返...

JS

执行上下文与作用域什么是执行上下文执行上下文可执行代码(executable code) 包含三种 全局代码(global code) - 代码首次执行的默认环境 函数代码(function...

JS

变量提升什么是变量提升变量提升(Hoisting) 其实是执行上下文工作的一种表现形式。表现为在其当前作用域范围内,声明前可以使用该变量(未初始化)或者函数。变量声明var name = 'Ta...

JS

原型链与继承许多OO语言都支持两种继承方式:接口继承和实现继承。接口继承只承认方法签名,而实现继承则继承实际的方法。由于函数没有签名,故 JavaScript 只支持实现继承。大部分面向对象的编...

JS

Error 处理机制Error 类型通过 Error 的构造器可以创建一个错误对象,当运行时错误产生时,Error 的实例对象会被抛出。通常 Error 实例对象有如下属性: ...

JS

尾调用优化什么是尾调用和尾递归尾调用(Tail Call) 是指一个函数里的最后一个动作是一个函数调用,这种情形下称该调用位置为尾位置。若这个函数在尾位置调用本身(或是一个尾调用本身的其他函数等...

JS

事件循环进程和线程进程(process) 是系统进行资源分配和调度的基本单位,任一时刻,单核CPU总是运行一个进程,其他进程处于非运行状态。线程(thread) 是系统能够进行运算调度的最小单位...

JS

数据检测typeoftypeof 是一个一元运算,运算数可以是任意类型。它返回值是一个字符串,代表其数据类型,包括以下 7 种:string、number、boolean、symbol、obje...

JS