ES11的新特性有哪些

  介绍

本篇文章给大家分享的是有关ES11的新特性有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>特性抢先知:

    <李>私有变量 <李>的承诺。李李allSettled <> BigInt全新的数据类型 <李> Nullish合并算子空位合并运算符 <李>可选的链接运营商可选链运算符 <李>动态导入动态导入李 <李> String.prototype。李matchAll新增matchAll李 <> globalThis新增全局对象李 <李>模块名称空间出口导入特定命名空间李

严格限制一些用于内部使用的类变量,只需要在变量前<强>添加# 强,就可以使其成为私有变量,并且无法在类外部直接访问

下面我们以一个简单的

类英雄
  #攻击力=0
  构造函数(攻击力){
  这一点。#攻击力=攻击力
  }
  getHurt () {
  返回这个。#攻击力
  }
  setAggressivity(攻击力){
  这一点。#攻击力=攻击力
  }
  }
  
  const射击=new英雄(100)
  让伤害=shooter.getHurt ()
  console.log(伤害)//100
  console.log(射击。#攻击力)//错误:未捕获SyntaxError:私有字段& # 39;#攻击力# 39;必须声明在一个封闭类

上面代码我们会发现,无法直接进行访问#攻击力,将抛出异常

只能通过班级里进行访问,可通过统一阶级的公共方法进行统一修改

假设目前射手携带了<强>狂暴强技能,提升了<强> 10%伤害强,我们可以通过setAggressivity来修改攻击力

 ES11的新特性有哪些

让p1=新的承诺((解决,拒绝)=比;{
  解决(& # 39;成功了& # 39;)
  })
  
  让p2=新的承诺((解决,拒绝)=比;{
  解决(& # 39;成功# 39;)
  })
  
  让p3=Promse.reject(& # 39;失败& # 39;)
  
  的承诺。((p1, p2))((结果)=比;{
  console.log(结果)//[& # 39;成功了& # 39;,& # 39;成功# 39;】
  }).catch(错误)=比;{
  console.log(错误)
  })
  
  Promise.all ((p3 p1, p2))((结果)=比;{
  console.log(结果)
  }).catch(错误)=比;{
  console.log(错误)//失败了,打出& # 39;失败& # 39;
  })

的承诺。种族:返回一个承诺,一旦某个承诺触发解决或者拒绝,就直接返回该承诺结果状态

 const promise1=新的承诺((解决,拒绝)=比;{
  setTimeout(500年解决,& # 39;一个# 39;);
  });
  
  const promise2=新的承诺((解决,拒绝)=比;{
  setTimeout(100年解决,& # 39;两个# 39;);
  });
  
  的承诺。种族([promise1, promise2))((值)=比;{
  console.log(价值);
  });//输出“two"因为promise2返回结果比promise1快

有时候我们可能需要知道所有的结果做一些操作,并不关心其执行结果是否成功,在没有承诺。allSettled之前,我们需要自己实现,可通过如下实现承诺。allSettled

 

而承诺。allSettled新特性出来后,我们可以直接使用而不需要单独去实现了

ES11的新特性有哪些