展开运算符
合并功能
例1
let state = { name: "jack" }
{...state, { name: "finley" }}
// 返回
{name: "finley"}
例2
var arr1 = ['two', 'three'];
var arr2 = ['one', ...arr1, 'four', 'five'];
// 结果
["one", "two", "three", "four", "five"]
拷贝功能
var arr = [1,2,3];
var arr2 = [...arr]; // 和arr.slice()差不多
arr2.push(4)
记住:数组中的对象依然是引用值,所以不是任何东西都“拷贝”过去了。
例3
let ab = { ...a, ...b };
// 等同于
let ab = Object.assign({}, a, b);
module 模块
用default导出的话,import时就不用大括号,因为default只有一个。
async 和 await
async 表示函数里有异步操作
await 表示紧跟在后面的表达式需要等待结果。
async 函数返回一个 Promise 对象
例1
const demo = async function() {
// await 后面接表达式
await alert(1);
}
// async 函数返回一个 Promise 对象
demo().then(res => console.log(1))