5. 箭頭函式_this 指向_es6 常用語法
1. 箭頭函式
函式的簡寫方式
() => {}
只有一個引數時,可以省略() ---- x => {}
只有一條語句時,可以省略{},此時這點語句的結果會作為函式的返回值返回 () => console.log('hello');
特點:
箭頭函式沒有自己的 this,與離他最近的一層包裹它的函式的 this 一致,如果沒有函式就指向 window
箭頭函式沒有 prototype 屬性,有 __proto__ 屬性
箭頭函式不能 new 呼叫
箭頭函式不能強制修改 this 指向
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