點(diǎn)運(yùn)算符
1. rest(可變)參數(shù)
* 用來(lái)取代arguments 但比 arguments 靈活,只能是最后部分形參參數(shù)
function fun(...values) {
? ? console.log(arguments);
? ? arguments.forEach(function (item, index) {
? ? ? console.log(item, index);
? ? });
? ? console.log(values);
? ? values.forEach(function (item, index) {
? ? ? ? console.log(item, index);
? })
}
fun(1,2,3);
2. 擴(kuò)展運(yùn)算符
let arr1 = [1,3,5];
let arr2 = [2,...arr1,6];
arr2.push(...arr1)
形參的默認(rèn)值
當(dāng)不傳入?yún)?shù)的時(shí)候默認(rèn)使用形參的默認(rèn)值
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對(duì)象的實(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();
ES7
1. 指數(shù)運(yùn)算符(冪): **
2. Array.prototype.includes(value) : 判斷數(shù)組中是否包含指定value