1. 程式人生 > >5. 箭頭函式_this 指向_es6 常用語法

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