[TOC]
## 1. 移动端适配问题
1. 使用@media查询设置rem
2. 使用vw 作为单位 ,因为vw是将一屏分为100个vw
## 2.this关键字的理解
* 1.在事件中,this指向正在执行事件的当前对象
* 2.在方法中,谁调用方法,this指向谁
* 3.在构造函数中,指向实例化的对象
* 4..在普通函数中调用,this指向window
## 3.cookie localStorage sessionStorage
| 特性 | Cookie | localStorage | sessionStorage |
| --- | --- | --- | --- |
| 数据的生命期 | 一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效 | 除非被清除,否则永久保存 | 仅在当前会话下有效,关闭页面或浏览器后被清除 |
| 存放数据大小 | 4K左右 | 一般为5MB | |
| 与服务器端通信 | 每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题 | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 | |
| 易用性 | 需要程序员自己封装,源生的Cookie接口不友好 | 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持 |
## 4.创建一个类并实例化自身
es6
```
class person{
constructor(name,age){
this.name = name;
this.age = age
}
}
let ccc = new person("ding",18);
console.log('实例',ccc);
```
es5
```
function Person(name,age) {
this.name = name;
this.age = age
}
var ding = new Person("ding",18)
console.log(ding)
```
## 5.如何解决回调地域
[回调地狱](https://www.kancloud.cn/henputongderen/donghuaxiaoguo/910518)
- promise
```
~~~
function promise(url) {
return new Promise(function (resolve, reject) {
$.ajax({
url,
type: "get",
dataType: "jsonp",
success: function (res) {
resolve(res); // resolve 处理异步操作成功的结果
},
error: function (err) {
reject(err) // reject 处理异步操作失败的结果
}
})
})
}
~~~
```
- generator
- async
## 6.ES6的新特性
1. 解构,展开语法
解构 从数组和对象提取值并赋值给独特的变量
展开 使用 (...)将对象展开为多个元素
2. let声明 有了块级作用域,let不能重复定义,不会声明提前
3. 有了class类
4. 有箭头函数