1.Nullish coalescing Operator(空值处理)

表达式在 ?? 的左侧 运算符求值为undefined或null,返回其右侧。

  1. let user = {
  2. u1: 0,
  3. u2: false,
  4. u3: null,
  5. u4: undefined,
  6. u5: '',
  7. }
  8. let u1 = user.u1 ?? '用户1' // 0
  9. let u2 = user.u2 ?? '用户2' // false
  10. let u3 = user.u3 ?? '用户3' // 用户3
  11. let u4 = user.u4 ?? '用户4' // 用户4
  12. let u5 = user.u5 ?? '用户5' // ''

2.Optional chaining(可选链)?.

?.用户检测不确定的中间节点

  1. let user = {}
  2. let u1 = user.childer.name // TypeError: Cannot read property 'name' of undefined
  3. let u1 = user.childer?.name // undefined
  1. obj?.prop 对象属性
  2. obj?.[expr] 对象属性
  3. func?.(…args) 执行函数

3.Promise.allSettled

返回一个在所有给定的promise已被决议或被拒绝后决议的promise,并带有一个对象数组,每个对象表示对应的promise结果

  1. const promise1 = Promise.resolve(3);
  2. const promise2 = 42;
  3. const promise3 = new Promise((resolve, reject) => reject('我是失败的Promise_1'));
  4. const promise4 = new Promise((resolve, reject) => reject('我是失败的Promise_2'));
  5. const promiseList = [promise1,promise2,promise3, promise4]
  6. Promise.allSettled(promiseList)
  7. .then(values=>{
  8. console.log(values)
  9. });

image.png

4.import()

按需导入

5.新基本数据类型BigInt

任意精度的整数

6.globalThis

  • 浏览器:window
  • worker:self
  • node:global