介绍
本篇文章给大家分享的是有关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来修改攻击力
让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的新特性有哪些