es6+es7+es8學習筆記 教程
阿新 • • 發佈:2019-01-23
ES8
求冪運算子
console.info(3 ** 3) //27
async await (非同步)
function doLater(n, x) {
//必須要返回一個promise
return new Promise((a) => {
setTimeout(() => {
a(x)
console.info(x)
}, n)
})
}
async function basicDemo() {
//使用await,會按順序執行
await doLater(1000, '1秒後我先執行')
await doLater(1000, '再過1秒我執行')
}
basicDemo()
//也可以在async函式中返回一個promise 然後就可以使用then了
//函式宣告: async function foo() {}
//函式表示式: const foo = async function() {}
//物件的方式: let obj = { async foo() {} }
//箭頭函式: const foo = async () => {}
ES7
ES6
promise (非同步)
function doPromise() {
return new Promise((a, b) => {
setTimeout(() => {
a("ok");
}, 1000)
})
}
doPromise().then(a => console.info(a))
Generator (按步執行)
//gennerator 與async await的區別是,前者需要手動執行,後者是自動向下執行的。
//方法名前要有星號,步驟前要有yield。執行.next()進行下一步
function* onebyon() {
console.info(0)
yield 'first'
console.info(1)
yield 'secend'
console.info(2)
return 'ending'
}
var dos = onebyon()
console.info(dos.next())
console.info(dos.next())
console.info(dos.next())
//輸出
0
{value: "first", done: false}
1
{value: "secend", done: false}
2
{value: "ending", done: true}
set資料結構
//該資料型別不會產生重複物件。
let a = new Set(['a', 'a', 'b'])
a.add(9)
console.info(a)
//['a','b',9]
Set.prototype.constructor:建構函式,預設就是Set函式。
Set.prototype.size:返回Set例項的成員總數。
Set 例項的方法分為兩大類:操作方法(用於操作資料)和遍歷方法(用於遍歷成員)。下面先介紹四個操作方法。
add(value):新增某個值,返回 Set 結構本身。
delete(value):刪除某個值,返回一個布林值,表示刪除是否成功。
has(value):返回一個布林值,表示該值是否為Set的成員。
clear():清除所有成員,沒有返回值。
of迴圈
let set = new Set(['red', 'green', 'blue']);
for (let item of set.keys()) {
console.log(item);
}
// red
// green
// blue
for (let item of set.values()) {
console.log(item);
}
// red
// green
// blue
for (let item of set.entries()) {
console.log(item);
}
// ["red", "red"]
// ["green", "green"]
// ["blue", "blue"]