安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

抢先了解ECMA2022(ES13)新特性(Javascri

11月23日 飞凤谷投稿
  本文中将介绍并解释在规范的最新草案中已被接受的提案的特性。
  每个特性提案都遵循一个过程,在这个过程中,它经历了不同的阶段,直到stage4,这表明新增功能已准备好包含在正式的ECMAScript标准中,并将包含在最快的实用标准修订版中。以下功能已经完成,处于stage4并已添加到ECMAScript最新草案中。
  新特性总结:声明类的字段:类字段可以在类的顶层被定义和初始化私有方法字段:用前缀来定义类的私有方法和字段类的静态公共方法和字段:增加了静态公共字段、静态私有方法和静态私有字段的特性ECMScript类静态初始化块:在类声明定义期间评估静态初始化代码块,可以访问类的私有字段检测私有字段:可以使用in操作符,如果指定的属性字段在指定的对象类中,则返回真,并且也能判断私有字段正则匹配索引:该提案提供了一个新的dflag,以获得关于输入字符串中每个匹配的开始和索引位置结束的额外信息在所有内置的可索引数据上新增。at()方法Object。hasOwn(object,property):使用Object。hasOwn替代Object。prototype。hasOwnProperty。callErrorCause:为了便捷的传递导致错误的原因1、声明类的字段
  到目前为止,在ES规范中,类的字段定义和初始化是在类的构造函数中完成的。但是在新的提案中,类字段可以在类的顶层被定义和初始化classPoint{size1;}2、私有方法字段
  用前缀来定义类的私有方法和字段。classPerson{getage(){}initValue(){this。this。age12;}}3、类的静态公共方法和字段
  在之前的类的字段和私有方法提案的基础上,为JavaScript类增加了静态公共字段、静态私有方法和静态私有字段的特性。classEnum{staticcollectStaticFields(){Staticmethodsarenotenumerableandthusignoredthis。enumKeysObject。keys(this);}}classColorEnumextendsEnum{staticredSymbol(red);staticgreenSymbol(green);staticblueSymbol(blue);staticthis。collectStaticFields();(A)staticlogColors(){for(constenumKeyofthis。enumKeys){(B)console。log(enumKey);}}}ColorEnum。logColors();Output:redgreenblue4、ECMScript类静态初始化块
  类静态块提议提供了一种优雅的方式,在类声明定义期间评估静态初始化代码块,可以访问类的私有字段classPerson{}try{Person。namegetNameA();}catch{Person。namegetNameB();}5、检测私有字段
  当我们试图访问一个没有被声明的公共字段时,会得到未定义的结果,同时访问私有字段会抛出一个异常。我们根据这两个行为来判断是否含有公共字段和私有字段。但是这个建议引入了一个更有趣的解决方案,它包括使用in操作符,如果指定的属性字段在指定的对象类中,则返回真,并且也能判断私有字段classPerson{getage(){}initValue(){this。this。age12;}statichasAge(person){}}6、正则匹配索引
  该提案提供了一个新的dflag,以获得关于输入字符串中每个匹配的开始和索引位置结束的额外信息。constregtest(d)g;constreg2022test(d)constsrttest1test2;constarr〔。。。str。matchAll(reg)〕;constarr2022〔。。。str。matchAll(reg2022)〕;arr〔0〕arr2022〔0〕
  7、在所有内置的可索引数据上新增。at()方法
  新增一个新的数组方法,通过给定的索引来获取一个元素。当给定的索引为正数时,这个新方法的行为与使用括号符号的访问相同,但是当我们给定一个负整数的索引时,它就像python的负数索引一样工作,这意味着at()方法以负整数为索引,从数组的最后一项往后数。所以该方法可以被执行为array。at(1),它的行为与array〔array。length1〕相同,在下面的例子中可以看到。constlist〔1,2,3,4,5,6〕;console。log(list。at(1));6console。log(list。at(2));58、Object。hasOwn(object,property)
  简单讲就是使用Object。hasOwn替代Object。prototype。hasOwnProperty。callconstperson{name:lxm}console。log(Object。prototype。hasOwnProperty。call(person,name))trueconsole。log(Object。hasOwn(person,name))true9、ErrorCause
  proposalerrorcause这一提案,目的主要是为了便捷的传递导致错误的原因,如果不使用这个模块,想要清晰的跨越多个调用栈传递错误上下文信息,通常要这么做:asyncfunctiondoJob(){constrawResourceawaitfetch(domainresourcea)。catch(err{Howtowraptheerrorproperly?1。thrownewError(Downloadrawresourcefailed:err。message);2。constwrapErrnewError(Downloadrawresourcefailed);wrapErr。throwwrapE3。classCustomErrorextendsError{constructor(msg,cause){super(msg);this。}}thrownewCustomError(Downloadrawresourcefailed,err);})constjobResultdoComputationalHeavyJob(rawResource);awaitfetch(domainupload,{method:POST,body:jobResult});}awaitdoJob();TypeError:Failedtofetch
  而按照这一提案的语法:syncfunctiondoJob(){constrawResourceawaitfetch(domainresourcea)。catch(err{thrownewError(Downloadrawresourcefailed,{cause:err});});constjobResultdoComputationalHeavyJob(rawResource);awaitfetch(domainupload,{method:POST,body:jobResult})。catch(err{thrownewError(Uploadjobresultfailed,{cause:err});});}try{awaitdoJob();}catch(e){console。log(e);console。log(Causedby,e。cause);}Error:UploadjobresultfailedCausedbyTypeError:Failedtofetch
  简单了很多,这个语法还是很实用的!
  相关文献:
  ES2022feature:classstaticinitializationblocks
  聊一聊进行中的TC39提案(stage123)
  文章来源https:zhuanlan。zhihu。comp426478894
投诉 评论 转载

RedmiK40至尊纪念版基本确认骁龙888120W快充,价8月11日小米发布了小米首款屏下手机小米MIX4,虽然还不是很完美,但仍然是目前最值得购买的屏下手机。不过这次小米并没有发布Redmi品牌的新机。去年同期,雷军一口气发布了小米……川剧变脸,白蛇传来到重庆,感受巴渝之地的川剧艺术,川剧精髓的变脸看得是目瞪口呆,变脸艺人下场在观众面前表演变脸,真是轮番喝彩。主题:【川剧变脸,白蛇传】器材:华为P20Pro徕卡三……未来几个月内,即将发布的三大旗舰手机,华为苹果神仙打架这三款旗舰手机即将发布,手机还能用的再等等!第一款:iPhone14ProiPhone14Pro搭载A16处理器,运行内存从6GB升级到了8GB,最大存储空间从1T……威马汽车,你意想不到的智能便捷随着汽车行业的不断变化,新能源汽车的发展前景是非常广阔的。威马汽车是国内新兴的一股新兴力量,它始终将卓越的产品和周到的服务奉献给消费者。从2018年开始,威马已经发布了威……我在成都二医院做手术感觉被黑了,怎么办?二医院的个别医生真的医德差。几年前去二医院看病,要是听医生的话,真的要收命。给我检查了一大堆,花了不少的冤枉钱。还要我做手术。说我脊髓有问题,不做手术要瘫痪。吓得我半死。后来花……让你眼前一亮的比亚迪过去一周里,比亚迪股价和市值纷纷创下历史新高,市值一度突破9000亿元,成为中国车企市值第一高,甚至超过中石油。销量上,7月全系销售56975辆,同比增长89。4。其中,……抢先了解ECMA2022(ES13)新特性(Javascri本文中将介绍并解释在规范的最新草案中已被接受的提案的特性。每个特性提案都遵循一个过程,在这个过程中,它经历了不同的阶段,直到stage4,这表明新增功能已准备好包含在正式……iphone如何隐藏桌面图标?iPhone用户想隐藏桌面上的应用图标可以通过设置中的访问限制功能实现,具体路径为设置通用访问限制。以下为具体操作步骤:1。打开访问限制后会出现一个设置密码的界面(第一次……华为的高光时代是否来临?谢谢邀请!今年9月中国企业500强榜单发布,在研发投入排名中,华为研发投入今年继续位居中国企业500强榜首,而且投入金额由上年度的1316。59亿元增至1418。93亿元……高档车车顶上大部分都有翘起的小尾巴,好奇它的作用吗?细心的车主朋友都会发现啊,有些汽车的顶部会有一个鲨鱼鳍模样的东东,它是干什么的呢?有什么作用呢?汽车顶上的鲨鱼鳍是干啥的?车顶的鲨鱼鳍,其实就是汽车的天线。鲨……微信8。0。10再度更新!又上线5个新功能,你升级了吗?分享最实在的玩机技巧,洞察最前沿的科技资讯!大家好,这里是手机科技园!就在昨天,安卓微信终于也完成了8。0。10版本更新,目前安卓和iOS微信版本号已经相同了,本次更新又……微信安卓8。0。22正式版有哪些改变近两年来,随着互联网时代的发展,越来越多的年轻人把手机当做随手工具,因为进入存量市场,各大手机软件之间持续内卷,但是真正戳中大众需求的改编没有太多,大多数时候大家看到更新后的软……
非洲大陆首富丹格特,垄断非洲炼油水泥,到底有多少财富?伽奈维医疗完成数亿元融资头条为什么是当下最好的平台?本人是一名准高一新生,不知道上高中应不应该买一部智能机?手机店老板自己在用的手机,性能强悍配置高,买对不买贵逗映Capture手机稳定器来了,没有不适用的场景!性价比新我不买大存储手机的理由,省钱入手USSD高速固态U盘U393拯救者Y7000P和R7000P怎么选?一场酒局后的是非阿里女员工自称被侵害事件陷罗生门?新疆5年内计划新增5G基站61716个kubernetes上部署wiki。js由于涨价,美国销售的特斯拉Model3ModelY将被取消补

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利