ES6
ES6的了解
es6是一個新的標准,它包含了許多新的語言特性和庫,是JS最實質性的一次升級。
比如’箭頭函數’、’字符串模板’、’generators(生成器)’、’async/await’、’解構賦值’、’class’等等,還有就是引入module模塊的概念。
箭頭函數
可以讓this指向固定化,這種特性很有利於封裝回調函數
(1)函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象。
(2)不可以當作構造函數,也就是說,不可以使用new命令,否則會拋出一個錯誤。
(3)不可以使用arguments對象,該對象在函數體內不存在。如果要用,可以用Rest參數代替。
(4)不可以使用yield命令,因此箭頭函數不能用作Generator函數。
async/await 是寫異步代碼的新方式,以前的方法有回調函數和Promise。
async/await是基於Promise實現的,它不能用於普通的回調函數。async/await與Promise一樣,是非阻塞的。
async/await使得異步代碼看起來像同步代碼,這正是它的魔力所在。
說說你對Promise的理解
Promise 是異步編程的一種解決方案,比傳統的解決方案——回調函數和事件監聽——更合理和更強大。
所謂Promise,簡單說就是一個容器,里面保存着某個未來才會結束的事件(通常是一個異步操作)的結果。從語法上說,Promise 是一個對象,從它可以獲取異步操作的消息。Promise 提供統一的 API,各種異步操作都可以用同樣的方法進行處理。
Promise對象有以下兩個特點:
1) 對象的狀態不受外界影響,Promise對象代表一個異步操作,有三種狀態:Pending(進行中)、Resolved(已完成,又稱 Fulfilled)和Rejected(已失敗)
2) 一旦狀態改變,就不會再變,任何時候都可以得到這個結果。