[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.如何解決回調地域
[回調地獄](http://www.hmoore.net/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. 有箭頭函數