1. 箭頭函數編程
函數的簡寫方式promise
() => {}dom
只有一個參數時,能夠省略() ---- x => {}異步
只有一條語句時,能夠省略{},此時這點語句的結果會做爲函數的返回值返回 () => console.log('hello');async
特色:異步編程
箭頭函數沒有本身的 this,與離他最近的一層包裹它的函數的 this 一致,若是沒有函數就指向 window函數
箭頭函數沒有 prototype 屬性,有 __proto__ 屬性this
箭頭函數不能 new 調用spa
箭頭函數不能強制修改 this 指向prototype
2. 談談 this
foo() window
obj.foo() obj
foo.call(obj) obj
new foo() 實例對象
箭頭函數的 this 與離他最近的一層包裹它的函數的 this 一致,若是沒有函數就指向 window
DOM事件 dom元素
定時器 window
3. promise
解決異步編程的一個方案/技術
解決異步編程,以同步的方式表達異步的代碼, 從而解決回調地獄的問題
promise 對象有 3 種狀態
初始化狀態(默認狀況下) pending 準備
成功的狀態 (一旦變成成功的狀態就會當即觸發成功的回調) fullfilled
失敗的狀態 (一旦變成失敗的狀態就會當即觸發失敗的回調) rejected
使用:
new Promise((resolve, reject) => {異步代碼})
Promise.resolve/reject()
Promise.all([promise1, promise2...])
promsie.then(捕獲成功的狀態,執行成功的回調函數).catch(捕獲失敗的狀態,執行失敗的回調函數)
4. async 函數修飾關鍵字
用來定義函數,真正解決回調地獄的問題,異步編程的最終解決方案
await Promise對象;
只能在 async 函數中使用
後面必須跟着 promise 對象,async 函數返回值也是pormise對象
當 promise 對象狀態是初始化狀態,await 會等待,直到變成成功/失敗纔會接着運行
await等待promise對象變成成功時,會將其返回值返回到左邊去,可被變量接收
5. ES6 其餘經常使用的語法
解構賦值
形參默認值
模板字符串 `${js 代碼將被執行}`
簡化對象的寫法
三點運算符
Symbol 新的數據類型
iterator 新的接口,提供統一的遍歷方法 for of