REST or GraphQL什么是 RESTREST(Representational State Transfer) 是一种架构风格,在遵循 REST 设计原则和约束条件的 面向资源的体系架...

HTTP

同源策略与跨域什么是同源策略同源策略(same-origin policy),即域名,协议,端口必须都相同才是同源。不同源的客户端脚本在没明确授权的情况下,不能读写对方的资源。其目的是为了保证用...

HTTP

HTTP 缓存缓存状态码使用缓存是为了加快客户端和服务器之间的通信,减少数据传输的成本。缓存状态码有以下两种: 200 OK (from cache) - 不向服务器发送请求,直接使用客户端缓...

HTTP

HTTPS & TCP什么是 HTTP超文本传输协议(HyperText Transfer Protocol),是用于传输诸如 HTML 的超媒体文档的应用层协议。HTTP 是无状态协议...

HTTP

域名发散 & 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 解析成 CSSOM; 结合...

HTML

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

JS

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

JS

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

JS

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

JS