[toc]
## 關于arguments
- 箭頭函數中不支持arguments,但可使用ES6中的`...args`剩余運算符替代(并且`...args`本身就是一個真正的數組無需轉換)
```
let fn = (...args)=>eval(arg.join('+'));
```
## 關于this
- 箭頭函數自己木有this,用到的this都是它的上級作用域的this,以后實戰項目中,并不是要把所有的函數都改為箭頭函數,根據自身需要修改即可(例如:我們需要讓函數中this是宿主環境中的this,我們才使用箭頭函數,或則不涉及this問題,我們想讓代碼寫起來簡便一些也可以使用箭頭函數)
```
let obj = {
name:'obj'
,fn(){
//this->obj
setTimeout(()=>{
//this->obj
},1000);
}
};
obj.fn();
```

即使利用`call`,this也是宿主環境中的this(也就是說call等無效)

## 關于宿主環境
宿主環境不是執行的環境,而是定義的環境,下面的例子中,fn雖然是在sum中執行的,但是它是在window下定義的,所以它的宿主環境是window
```
let fn=()=>{
console.log(this);
}
let obj = {
name:'obj'
,sum:function(){
//->this.obj
fn();
}
};
obj.sum(); //window
```
## 高階函數
```
let fn = function(i){
return function(n){
return n+(++i);
}
}
let fn = i=>n=>(n+(++i));
```
- 空白目錄
- window
- location
- history
- DOM
- 什么是DOM
- JS盒子模型
- 13個核心屬性
- DOM優化
- 回流與重繪
- 未整理
- 文檔碎片
- DOM映射機制
- DOM庫封裝
- 事件
- 功能組件
- table
- 圖片延遲加載
- 跑馬燈
- 回到頂部
- 選項卡
- 鼠標跟隨
- 放大鏡
- 搜索
- 多級菜單
- 拖拽
- 瀑布流
- 數據類型的核心操作原理
- 變量提升
- 閉包(scope)
- this
- 練習題
- 各種數據類型下的常用方法
- JSON
- 數組
- object
- oop
- 單例模式
- 高級單例模式
- JS中常用的內置類
- 基于面向對象創建數據值
- 原型和原型鏈
- 可枚舉和不可枚舉
- Object.create
- 繼承的六種方式
- ES6下一代js標準
- babel
- 箭頭函數
- 對象
- es6勉強筆記
- 流程控制
- switch
- Ajax
- eval和()括號表達式
- 異常信息捕獲
- 邏輯與和或以及前后自增
- JS中的異步編程思想
- 上云
- 優化技巧
- 跨域與JSONP
- 其它跨域相關問題
- console
- HTML、XHTML、XML
- jQuery
- zepto
- 方法重寫和方法重載
- 移動端
- 響應式布局開發基礎
- 項目一:創意簡歷