从前从前从前从前

从前从前从前从前

// 甚至更谨慎点,加长判断,多个三目运算

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
})

12-09 13:13