ES2020

私有变量

 class School {
     #name = ''
     constructor(name) {
      this.#name = name // 类的内部私有变量写法, 外部无法访问
    }
    returnPrivateVar() {
      return console.log(this.#name);
    }
 }

 let a = new School('Jack')
 console.log(a.#name); // Uncaught SyntaxError: Private field '#name' must be declared in an enclosing class
 a.returnPrivateVar() // 获取的内部私有变量

合并空运算符

 const obj = {
   name:'tony'
 }
 console.log(obj.age ?? 18); // 等价于 console.log(obj.age || 18)

可选链运算符

 const person = {
     tony:{}
 }
 console.log(person?.tony?.name?.age); // 输出的结果是 undefined, 而不是抛出异常
 console.log(person?.tony?.name?.age ?? 18); // 一般可以配合合并空运算符使用

动态导入

 // test.js
 export const add = (a, b) => a + b
var a = async () => {
  const module = await import('./test.js');
  console.log(module.add(1,2)) // 返回的是 add函数 执行后结果
}

a()

globalThis

  • 在浏览器端表示 window对象
  • 在 node 端表示 global对象
  • 在 web worker 表示 self

Promise.allSettled

var a = new Promise((resolve, reject) => {
  resolve('a')
})

var b = new Promise((resolve, reject) => {
  resolve('b')
})

var c = new Promise((resolve, reject) => {
  reject('c')
})

Promise.allSettled([a, b, c]).then(data => {
  /*
    [ 
      {status: "fulfilled", value: "a"}, 
      {status: "fulfilled", value: "b"}, 
      {status: "rejected", value: "c"} 
    ]
  */
  console.log(data) 
})

它和 Promise.all 需要全都要请求成功才行, 只要出现一个错误就会立即终止, 把错误信息返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值