Promise對(duì)象
1. 理解:
* Promise對(duì)象: 代表了未來(lái)某個(gè)將要發(fā)生的事件(通常是一個(gè)異步操作)
* 有了promise對(duì)象, 可以將異步操作以同步的流程表達(dá)出來(lái), 避免了層層嵌套的回調(diào)函數(shù)(俗稱'回調(diào)地獄')
* ES6的Promise是一個(gè)構(gòu)造函數(shù), 用來(lái)生成promise實(shí)例
2. 使用promise基本步驟(2步):
* 創(chuàng)建promise對(duì)象
let promise = new Promise((resolve, reject) => {
//初始化promise狀態(tài)為 pending
//執(zhí)行異步操作
if(異步操作成功) {
resolve(value);//修改promise的狀態(tài)為fullfilled
} else {
reject(errMsg);//修改promise的狀態(tài)為rejected
}
})
* 調(diào)用promise的then()
promise.then(function(
result => console.log(result),
errorMsg => alert(errorMsg)
))
3. promise對(duì)象的3個(gè)狀態(tài)
* pending: 初始化狀態(tài)
* fullfilled: 成功狀態(tài)
* rejected: 失敗狀態(tài)
4. 應(yīng)用:
* 使用promise實(shí)現(xiàn)超時(shí)處理
* 使用promise封裝處理ajax請(qǐng)求
let request = new XMLHttpRequest();
request.onreadystatechange = function () {
}
request.responseType = 'json';
request.open("GET", url);
request.send();



class
1. 通過(guò)class定義類/實(shí)現(xiàn)類的繼承
2. 在類中通過(guò)constructor定義構(gòu)造方法
3. 通過(guò)new來(lái)創(chuàng)建類的實(shí)例
4. 通過(guò)extends來(lái)實(shí)現(xiàn)類的繼承
5. 通過(guò)super調(diào)用父類的構(gòu)造方法
6. 重寫從父類中繼承的一般方法


字符串?dāng)U展
1. includes(str) : 判斷是否包含指定的字符串
2. startsWith(str) : 判斷是否以指定字符串開頭
3. endsWith(str) : 判斷是否以指定字符串結(jié)尾
4. repeat(count) : 重復(fù)指定次數(shù)

數(shù)值擴(kuò)展
1. 二進(jìn)制與八進(jìn)制數(shù)值表示法: 二進(jìn)制用0b, 八進(jìn)制用0o
2. Number.isFinite(i) : 判斷是否是有限大的數(shù)
3. Number.isNaN(i) : 判斷是否是NaN
4. Number.isInteger(i) : 判斷是否是整數(shù)
5. Number.parseInt(str) : 將字符串轉(zhuǎn)換為對(duì)應(yīng)的數(shù)值
6. Math.trunc(i) : 直接去除小數(shù)部分

數(shù)組擴(kuò)展
1. Array.from(v) : 將偽數(shù)組對(duì)象或可遍歷對(duì)象轉(zhuǎn)換為真數(shù)組
2. Array.of(v1, v2, v3) : 將一系列值轉(zhuǎn)換成數(shù)組
3. find(function(value, index, arr){return true}) : 找出第一個(gè)滿足條件返回true的元素
4. findIndex(function(value, index, arr){return true}) : 找出第一個(gè)滿足條件返回true的元素下標(biāo)

對(duì)象擴(kuò)展
1. Object.is(v1, v2)
* 判斷2個(gè)數(shù)據(jù)是否完全相等
2. Object.assign(target, source1, source2..)
* 將源對(duì)象的屬性復(fù)制到目標(biāo)對(duì)象上
3. 直接操作 __proto__ 屬性
let obj2 = {};
? obj2.__proto__ = obj1;

ES7
1. 指數(shù)運(yùn)算符(冪): **
2. Array.prototype.includes(value) : 判斷數(shù)組中是否包含指定value
<script type="text/javascript">
? console.log(2 ** 3);//8
? let arr = [1,4,5,6,'abc'];
? console.log(arr.includes('a'));//false
? console.log(arr.includes('abc'));//true
? console.log(arr.includes(4));//true
</script>