欢迎订阅我的前端面经专栏: 每日前端面经
本期题目来源: 牛客
重绘:当一个元素的外观发生改变,但没有改变布局,重新把元素外观绘制出来的过程,叫做重绘
回流:当DOM的变化影响了元素的几何信息(元素的的位置和尺寸大小),浏览器需要重新计算元素的几何属性,将其安放在界面中的正确位置
Set 是 es6 新增的数据结构,似于数组,但它的一大特性就是所有元素都是唯一的,没有重复的值,我们一般称为集合。Set本身是一个构造函数,用来生成 Set 数据结构
super 关键字用于访问对象字面量或类的原型([[Prototype]])上的属性,或调用父类的构造函数
class Polygon {
constructor(height, width) {
this.name = "Rectangle";
this.height = height;
this.width = width;
}
sayName() {
console.log("Hi, I am a ", this.name + ".");
}
get area() {
return this.height * this.width;
}
set area(value) {
this._area = value;
}
}
class Square extends Polygon {
constructor(length) {
this.height; // ReferenceError,super 需要先被调用!
// 这里,它调用父类的构造函数并传入 length
// 作为 Polygon 的 height, width
super(length, length);
// 注意:在派生的类中,在你可以使用 'this' 之前,必须先调用 super()。
// 现在可以使用 'this' 了,忽略 'this' 将导致引用错误(ReferenceError)
this.name = "Square";
}
}
class Rectangle {
static logNbSides() {
return "I have 4 sides";
}
}
class Square extends Rectangle {
static logDescription() {
return `${super.logNbSides()} which are all equal`;
}
}
Square.logDescription();
Chunk 不同于 entry、 output、module 这样的概念,它们对应着 Webpack 配置对象中的一个字段,Chunk 没有单独的配置字段,但却出现在 CommonsChunkPlugin(Webpack3 以前)、optimization.splitChunks(Webpack4 以后)这样的名称之中
Webpack 可以看做是模块打包器,我们编写的任何文件,对于 Webpack 来说,都是一个个模块。所以 Webpack 的配置文件,有一个 module 字段,module 下有一个 rules 字段,rules 下有就是处理模块的规则,配置哪类的模块,交由哪类 loader 来处理
Chunk 是 Webpack 打包过程中,一堆 Module 的集合。我们知道 Webpack 的打包是从一个入口文件开始,也可以说是入口模块,入口模块引用这其他模块,模块再引用模块。Webpack 通过引用关系逐个打包模块,这些 Module 就形成了一个 Chunk
| 分类 | 描述 | 举例 |
|---|---|---|
| 1** | 信息,服务器收到请求,需要请求者继续执行操作 | |
| 2** | 成功,操作被成功接收并处理 | 200: 请求成功; |
| 3** | 重定向,需要进一步的操作以完成请求 | 301: 资源已经被永久移动; |
| 4** | 客户端错误,请求包含语法错误或无法完成请求 | 403: 拒绝执行此请求; 404: 无法找到请求的资源; 405: 请求的方法被禁止; |
| 5** | 服务器错误,服务器在处理请求的过程中发生了错误 | 505: 服务器不支持请求的 HTTP 版本; 500: 服务器内部错误,无法完成请求; |
基本的网络请求就是三个步骤:请求,处理,响应
前端缓存则可以在请求和响应中进行。在请求步骤中,浏览器也可以通过存储结果的方式直接使用资源,直接省去了发送请求;而响应步骤需要浏览器和服务器共同配合,通过减少响应内容来缩短传输时间
重排(reflow)和重绘(repaint)
Vue——父子组件的生命周期(执行顺序)
MDN
一文说清 Webpack 的整体构建流程
理解 Webpack 中的 Chunk
一文读懂前端缓存
新人发文,礼貌求关❤️