# es6
> 關于es6的特性建議查看阮一峰老師的[《es6入門》](http://es6.ruanyifeng.com/)
## 新增加的特性
- 模板字符串(為JavaScript提供了簡單的字符串插值功能)
- 箭頭函數(操作符左邊為輸入的參數,而右邊則是進行的操作以及返回的值Inputs=>outputs。)
- for-of(用來遍歷數據)
- arguments對象可被不定參數和默認參數完美代替。
- ES6將promise對象納入規范,提供了原生的Promise對象。
- 增加了let和const命令,用來聲明變量。增加了塊級作用域。let命令實際上就增加了塊級作用域。
- ES6規定,var命令和function命令聲明的全局變量,屬于全局對象的屬性;let命令、const命令、class命令聲明的全局變量,不屬于全局對象的屬性;
- 引入module模塊的概念
- Default Parameters(默認參數) in ES6
- Multi-line Strings (多行字符串)in ES6
- Destructuring Assignment (解構賦值)in ES6
- Enhanced Object Literals (增強的對象文本)in ES6
- Block-Scoped Constructs Let and Const(塊作用域構造Let and Const)
- Classes(類) in ES6
## => 函數
- 沒有自己的this,而是使用當前上下文的this
- 通過 call() 或 apply() 方法調用一個函數時,只是傳入了參數而已,對 this 并沒有什么影響。
- 箭頭函數不綁定Arguments 對象
- 箭頭函數不能用作構造器,和 new一起用會拋出錯誤。
- 箭頭函數沒有prototype屬性。
- yield 關鍵字通常不能在箭頭函數中使用(除非是嵌套在允許使用的函數內)。因此,箭頭函數不能用作生成器。
- params => {object:literal}這種簡單的語法返回對象字面量出錯。
## var/let/const
### var
函數作用域
### let
- 塊級作用域
- 不能重定義
- let聲明的全局變量不是全局對象的屬性
- 形如for (let x...)的循環在每次迭代時都為x創建新的綁定
### const
- const聲明的變量與let聲明的變量類似,它們的不同之處在于,const聲明的變量只可以在聲明時賦值,
- Houser的個人Wiki
- Javascript
- 語言基礎
- 變量
- 操作符整理
- new
- Ajax
- 事件
- 遍歷
- 字符串轉數字方法
- 原型鏈
- apply/call/bind
- 異步編程
- 模塊化
- 繼承的方式
- 對象的創建方式
- 內存泄漏
- js延遲加載
- 數據類型
- typeof
- 垃圾回收
- 作用域
- 閉包
- this
- es6
- 代碼片段
- 對象拷貝
- Node.js
- 模塊
- 庫&框架
- Jquery
- 優點
- 組件庫
- React
- React原理
- Key的作用
- JSX
- Redux
- Mobx
- 生命周期
- Typescript
- HTML&CSS
- viewport meta
- websocket
- webwork
- web GL
- html全局屬性
- iframe
- 頁面間通訊
- SVG
- 盒模型
- 輸入url到顯示的過程
- BFC(塊格式化上下文)
- 動畫
- CSS 秘密花園
- 前端
- webpack
- 后端
- nginx
- springboot
- 網絡
- 跨域
- 網絡攻擊
- TCP
- Https
- Http狀態碼
- 緩存策略
- Http2
- 數據結構&算法
- 常用數據結構
- 開發&編碼
- Git
- 分支策略
- 基本操作
- VSCode
- 工具
- App開發
- ReactNative
- 項目&業務
- Docker
- 協作工具
- 前端性能優化
- 登錄授權
- 軟件工程
- 漸進增強和優雅降級
- 計算機基礎
- 設計模式
- 單例模式
- 工廠模式
- 發布訂閱模式
- 適配器模式
- 代理模式
- 外觀模式
- 命令模式
- 橋接模式
- 模板模式
- 職責鏈模式
- 正則