// 甚至更谨慎点,加长判断,多个三目运算
const tableList = res && res.data && res.data.content;
// 有了可选链, 简写为
const tableList = res?.data?.content // [1,2,3]
-----------------------------------------------------------------------------------------
Object.values({a: 1, b: 2, c: 3}); // [1, 2, 3]
Array.prototype.includes()
[1].includes(1); // true
String padding
// padStart
'hello'.padStart(10); // " hello"
// padEnd
'hello'.padEnd(10) "hello "
replaceAll
const str = 'hello world';
str.replaceAll('l', ''); // "heo word"
a ||= b
//等价于
a = a || (a = b)
a &&= b
//等价于
a = a && (a = b)
a ??= b
//等价于
a = a ?? (a = b)
Promise.finally()
Promise.resolve().then().catch(e => e).finally(最后都会走loading图标地方);
结合try使用
async fn () {
try{ //只要上面的语句出现错误或者throw语句这句将不会被执行
const res = await userinfo() // 捕获
this.list = res.data.list
console.log('正确')
}catch(err){ //如果try中发现错误,则执行catch中的语句,如果没有错误,则跳过catch
console.log('err')
}finally{
console.log("无论如何都会执行");
}
}
结合then使用
p.then((res)=>{
console.log('成功=>', res)
}).catch(()=>{
console.log('失败')
}).finally(()=>{
this.loading = false
})