- ES6
1.1 模块化的使用与编译环境1.2 Class与JS普通构造函数的区别1.11 ES6模块化如何使用,开发环境如何打包 ·语法 : import export (注意有无 default) ·环境 : babel编译ES6语法,模块化可用webpack和rollup
· js构造函数· Class基本语法function MathHandle(x,y){ this.x = x; this.y = y; } MathHandle.prototype.add = function () { return this.x + this.y; } var m = new MathHandle(1,2); console.log(m.add())
· 语法糖class MathHandle { constructor(x,y) { this.x = x; this.y = y; } add() { return this.x + this.y; } } const m = new MathHandle(1,2); console.log(m.add())
· 继承class MathHandle{ //... } type of MathHandle // "function" MathHandle === MathHandle.prototype.constructor //true m.__proto__ === MathHandle.prototype //true
//动物
function Animal() {
this.eat = function () {
console.log('animal eat')
}
}
//狗
function Dog() {
this.bark = function () {
console.log('dog bark')
}
}
Dog.prototype = new Animal();
//哈士奇
var hashiqi = new Dog();
class Animal {
construtor(name) {
this.name = name;
}
eat () {
console.log(` ${this.name} eat `)
}
}
class Dog extends Animal {
construtor(name) {
super(name) //!!super()
this.name = name
}
say () {
cnosole.log(`${this.name} say`)
}
}
const dog = new Dog('哈士奇');
dog.say();
dog.eat()
1.3 Promise的用法
1.4 ES6其他常用功能
-
异步
1.1 什么是单线程,与异步的关系
1.2 什么是event-loop
1.3 目前js解决异步的方案
1.4 jquery如何解决异步
1.5 Promise的标准
1.6 async/await的使用 -
原型
3.1 原型如何实际应用
3.2 原型如何满足扩展 -
vdom
4.1 什么是vdom,为何要用vdom
4.2 vdom如何使用,核心函数有哪些
4.3 diff算法 -
mvvm
5.1 jquery和vue或React区别
5.2 如何理解MVVM
5.3 vue如何实现响应式
5.4 vue如何解析模板
5.5 介绍vue的实现流程 -
组件化
6.1 对组件化的理解
6.2 JSX是什么
6.3 JSX和vdom的关系
6.4 简述React的setState
6.5 比较React与vue -
hybrid
7.1 hybrid是什么,为何要用hybrid
7.2 hybrid如何更新上线
7.3 hybrid和h5的区别
7.4 Js如何与客户端通信 -
http
8.1 缓存
HTTP缓存有多种规则,根据是否需要重新向服务器发起请求来分类,可以将其分为两大类(强制缓存,对比缓存)
8.11 强制缓存
```
强制缓存,在缓存数据未失效的情况下,可以直接使用缓存数据,那么浏览器是如何判断缓存数据是否失效呢?
我们知道,在没有缓存数据的时候,浏览器向服务器请求数据时,服务器会将数据和缓存规则一并返回,缓存规则信息包含在响应header中。
对于强制缓存来说,响应header中会有两个字段来标明失效规则(Expires/Cache-Control)
使用chrome的开发者工具,可以很明显的看到对于强制缓存生效时,网络请求的情况
Expires
Expires的值为服务端返回的到期时间,即下一次请求时,请求时间小于服务端返回的到期时间,直接使用缓存数据。
不过Expires 是HTTP 1.0的东西,现在默认浏览器均默认使用HTTP 1.1,所以它的作用基本忽略。
另一个问题是,到期时间是由服务端生成的,但是客户端时间可能跟服务端时间有误差,这就会导致缓存命中的误差。
所以HTTP 1.1 的版本,使用Cache-Control替代。
Cache-Control
Cache-Control 是最重要的规则。常见的取值有private、public、no-cache、max-age,no-store,默认为private。
private: 客户端可以缓存
public: 客户端和代理服务器都可缓存(前端的同学,可以认为public和private是一样的)
max-age=xxx: 缓存的内容将在 xxx 秒后失效
no-cache: 需要使用对比缓存来验证缓存数据(后面介绍)
no-store: 所有内容都不会缓存,强制缓存,对比缓存都不会触发(对于前端开发来说,缓存越多越好,so...基本上和它说886)
```
8.12 对比缓存
8.2 如何做开源