展開運算符
合并功能
例1
let state = { name: "jack" }
{...state, { name: "finley" }}
// 返回
{name: "finley"}
例2
var arr1 = ['two', 'three'];
var arr2 = ['one', ...arr1, 'four', 'five'];
// 結(jié)果
["one", "two", "three", "four", "five"]
拷貝功能
var arr = [1,2,3];
var arr2 = [...arr]; // 和arr.slice()差不多
arr2.push(4)
記捉缗狻:數(shù)組中的對象依然是引用值蜕乡,所以不是任何東西都“拷貝”過去了。
例3
let ab = { ...a, ...b };
// 等同于
let ab = Object.assign({}, a, b);
module 模塊
用default導(dǎo)出的話梦谜,import時就不用大括號,因為default只有一個袭景。
async 和 await
async 表示函數(shù)里有異步操作
await 表示緊跟在后面的表達(dá)式需要等待結(jié)果。
async 函數(shù)返回一個 Promise 對象
例1
const demo = async function() {
// await 后面接表達(dá)式
await alert(1);
}
// async 函數(shù)返回一個 Promise 對象
demo().then(res => console.log(1))