游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

ES6ES1336大新特性大盘点?

  大家好,很高兴又见面了,我是前端进阶,由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!
  前端进阶1。ES6(ES2015)1。1Class
  JavaScript是一种使用原型链的语言。早期像面向对象这样的概念都是通过原型链来做的,比较复杂,Class终于在ES6中引入了。classAnimal{constructor(name,color){this。namename;this。colorcolor;}ThisisapropertyontheprototypechaintoString(){console。log(name:this。name,color:this。color);}}varanimalnewAnimal(myDog,yellow);animal。toString();console。log(animal。hasOwnProperty(name));trueconsole。log(animal。hasOwnProperty(toString));falseconsole。log(animal。proto。hasOwnProperty(toString));trueclassCatextendsAnimal{constructor(action){super(cat,white);this。actionaction;}toString(){console。log(super。toString());}}varcatnewCat(catch);cat。toString();console。log(catinstanceofCat);trueconsole。log(catinstanceofAnimal);true1。2module
  每个模块都有自己的命名空间,避免冲突,使用import和export来导入导出,默认将。js文件视为模块。1。3Arrowfunction箭头函数
  (){}是函数的缩写,有了箭头函数再也不用写varselfthis,varthatthis等类代码。constadd(a,b){returnab;};constresadd(1,2);3constminus(a,b)ab;constres1minus(5,1);41。4函数参数默认值
  如果函数不传参数,则使用默认值,更简洁。functionexample(height5,width6){constnewHheight2;constnewWwidth4;returnnewHnewW;}example();34(5264)1。5模板字符串
  以前,长字符串的组合使用号连接,可读性差,使用模板字符串更容易阅读。constfirstNamewater;constlastNamefish;notusetemplateliteralconstnameHello,MynameisfirstName,lastName;usetemplateliteralconstnameWithLiteralStringHello,Mynameis{firstName},{lastName};1。6解构constarr〔1,2,3,4,5〕;const〔one,two,three〕arr;console。log(one);1console。log(two);2。。。Toskipcertainvaluesconst〔first,,,,last〕arr;console。log(first);1console。log(last);5Objectscanalsobedestructurizedandassignedconststudent{name:waterfish,age:28,};const{name,age,city}student;console。log(name);waterfishconsole。log(age);281。7spread操作符constarr1〔A,B〕;constarr2〔0,。。。arr1,1,2〕;conslog。log(arr2);〔0,A,B,1,2〕
  用三个点表示,Array可以扩展,而如果是Object,则根据keyvalue进行扩展。1。8对象属性缩写
  因为构成newCustomer对象属性的name、age的key、value相同,所以省略value。constnamewaterfish,age28;BeforeES6,wemustwritelikethisconstcustomer{name:name,age:age,};{name:waterfish,age:28}AfterES6,wecandoitconstnewCustomer{name,age,};{name:waterfish,age:28}1。9Promise
  Promise是一种解决异步(非同步)写法的方案,比原来的callback写法更优雅。使用Promise可以解决hellcallback。constwaitSecondnewPromise((resolve,reject){setTimeout(resolve,1000);});waitSecond。then((){console。log(helloafter1second。);outputthislineafter1secondreturnwaitSecond;})。then((){console。log(Worldafter2sceond。);outputthislineafter2second});
  ES8(ES2017)发布了一个更完美的async,await,直接让异步的写法看起来像同步的。1。10let,const替换varlet:通用变量,可以重写。const:一旦声明,其内容不可修改。因为数组和对象都是指针,所以可以在不改变指针的情况下增加或减少它们的内容。2。ES7(ES2016)2。1Array。prototype。includes()
  用于判断数组中是否包含指定值,如果包含则返回true,否则,返回false。因为返回布尔值,比indexOf的语义化更加清晰。constarr〔1,2,3,4,5〕;arr。include(3);trueif(arr。include(3)){。。。}。。。EquivalenttothepreviouswritingofindexOfarr。indexOf(3);2(returnitsarrayposition)Ifyouwanttowriteitintheif,youmustadd1,whichisnotasclearastheincludeinES7intermsofsemanticsif(arr。indexOf(3)1){。。。}2。2指数运算符console。log(210);1024equaltoconsole。log(Math。pow(2,10));10243。ES8(ES2017)3。1async,await
  异步函数是使用async关键字声明的函数,其中允许使用await关键字。async和await关键字使基于Promise的异步行为能够以更简洁的方式编写,避免显式配置Promise链的需要。asynctest(){try{constresultawaitotherAsyncFunction();console。log(result);outputresult}catch(e){console。log(e);CancatcherrorsifotherAsyncFunction()throwsanerror}}3。2Object。values()
  返回对象自身属性的所有值,不包括继承的值。constexampleObj{a:1,b:2,c:3,d:4};console。log(Object。value(exampleObj));〔1,2,3,4〕;Todothesamethingbefore,usethefollowingnotation。muchverboseconstvaluesObject。keys(exampleObj)。map((key)exampleObj〔key〕);3。3Object。entries()
  返回一个可枚举的键,value中存储的是键的值。constObj{a:1,b:2,c:3,d:4};console。log(Object。entries(Obj));〔〔a,1〕,〔b,2〕,〔c,3〕,〔d,4〕〕;Usuallyusedwithforfor(const〔key,value〕ofObject。entries(Obj)){console。log(key:{key},value:{value});}key:a,value:1key:b,value:2key:c,value:3key:d,value:43。4padStart()padEnd()
  您可以在字符串的开头或结尾添加额外的内容,并将其填充到指定的长度。过去,这些功能通常是通过lodash等通用帮助工具包引入的。String。padStart(fillingLength,FillingContent);Ifthecontenttobefilledistoomuchandexceedsthefilllength,itwillbefilledfromtheleftmosttotheupperlimitofthelength,andtheexcesswillbetruncated
  最常用的情况应该是金额,填指定长度,不足补0。padStart100。padStart(5,0);00100Ifthecontenttobepaddedexceedsthepaddinglength。Thenfillinfromthelefttotheupperlimitofthelength100。padStart(5,987);98100padEnd100。padEnd(5,9);10099Ifthecontenttobepaddedexceedsthepaddinglength。Thenfillinfromtherighttotheupperlimitofthelength100。padEnd(5,987);100983。5trailingcomma
  ECMAScript2017支持函数参数中的尾随逗号。functionf(p){}functionf(p){}(p){};(p){};3。6Object。getOwnPropertyDescriptors()
  获取您自己的描述符,一般开发业务需求通常不会使用这些描述符。constexampleObj{a:1,b:2,c:3,d:4};Object。getOwnPropertyDescriptors(exampleObj);{a:{},b:{},c:{},d:{}}a:{value:1,writable:true,enumerable:true,configurable:true}b:{value:2,writable:true,enumerable:true,configurable:true}c:{value:3,writable:true,enumerable:true,configurable:true}d:{value:4,writable:true,enumerable:true,configurable:true}proto:Object3。7共享数组缓冲区(sharedarraybuffer)
  SharedArrayBuffer是原始二进制数据的固定长度缓冲区,类似于ArrayBuffer。可用于在共享内存上创建数据,与ArrayBuffer不同,SharedArrayBuffer不能分离。3。8Atomicsobject
  Atomics对象提供一组静态方法来对SharedArrayBuffer执行原子操作。如果一个多线程同时在同一个位置读写数据,原子操作保证了正在操作的数据符合预期:即在上一个子操作结束后执行下一个,操作不中断。
  可以说是针对Node。Js中多线程Server的开发而加强的功能,在前端开发中使用的机会相当低,目前Chrome已经支持。3。ES9(ES2018)3。1awaitloop
  在异步函数中,有时需要在同步for循环中使用异步(非同步)函数。for循环本身还是同步的,整个for循环会在循环中的异步函数执行完之前执行完,然后里面的异步函数会一个一个执行。ES9加入了异步迭代器,允许await配合使用for循环逐步执行异步操作。asyncfunctionprocess(array){forawait(constiofarray){doSomething(i);}}3。2promise。finally()
  无论是成功(。then())还是失败(。catch()),都会在Promise之后执行的代码。functionprocess(){process1()。then(process2)。then(process3)。catch((err){console。log(err);})。finally((){console。log(itmustexecutnomattersuccessorfail);});}3。3RestSpreadconstmyObject{a:1,b:2,c:3,};const{a,。。。r}myObject;a1r{b:2,c:3}CanalsobeusedinfunctioninputparametersfunctionrestObjectInParam({a,。。。r}){console。log(a);1console。log(r);{b:2,c:3}}restObjectInParam({a:1,b:2,c:3,});4。ES10(ES2019)4。1Array。prototype。flat()Array。prototype。flatMap()constarr1〔1,2,〔3,4〕〕;arr1。flat();〔1,2,3,4〕constarr2〔1,2,〔3,4,〔5,6〕〕〕;arr2。flat();〔1,2,3,4,〔5,6〕〕Passinanumberinflat,representingtheflatteningdeptharr2。flat(2);〔1,2,3,4,5,6〕
  下面是flatMap方法:letarr〔water,,fish〕;arr。map((s)s。split());〔〔w,a,t,e,r〕,〔〕,〔f,i,s,h〕arr。flatMap((s)s。split());〔w,a,t,e,r,,f,i,s,h〕4。2String。prototype。trimStart()String。prototype。trimEnd()
  trimStart()方法从字符串的开头删除空格,trimLeft()是该方法的别名。constgreetingHelloworld!;console。log(greeting);expectedoutput:Helloworld!;console。log(greeting。trimStart());expectedoutput:Helloworld!;
  trimEnd()方法删除字符串末尾的空格,trimRight()是该方法的别名。constgreetingHelloworld!;console。log(greeting);expectedoutput:Helloworld!;console。log(greeting。trimEnd());expectedoutput:Helloworld!;4。3Object。fromEntries()
  将键值对列表转换为对象。constentriesnewMap(〔〔foo,bar〕,〔baz,42〕,〕);constobjObject。fromEntries(entries);console。log(obj);expectedoutput:Object{foo:bar,baz:42}4。4String。prototype。matchAll
  matchAll()方法返回一个迭代器,遍历将字符串与正则表达式匹配的所有结果,包括捕获组。constregexpt(e)(st(d?))g;conststrtest1test2;constarray〔。。。str。matchAll(regexp)〕;console。log(array〔0〕);expectedoutput:Array〔test1,e,st1,1〕console。log(array〔1〕);expectedoutput:Array〔test2,e,st2,2〕4。4BigIntconsttheBiggestInt9007199254740991n;constalsoHugeBigInt(9007199254740991);9007199254740991nconsthugeStringBigInt(9007199254740991);9007199254740991nconsthugeHexBigInt(0x1fffffffffffff);9007199254740991nconsthugeBinBigInt(0b11111111111111111111111111111111111111111111111111111);9007199254740991n5。ES11(ES2020)5。1Promise。allSettled()
  Promise。allSettled()方法返回一个Promise,当所有给定的Promise都已完成或被拒绝时,该Promise就会完成,其中每个对象都描述每个Promise的结果。
  当您有多个不依赖于彼此成功完成的异步任务时,或者当您总是想知道每个Promise的结果时通常会使用它。
  相反,如果任务相互依赖、或者您希望其中任何一个Promise失败后则立即拒绝,则由Promise。all()返回的Promise可能更合适。constpromise1Promise。resolve(3);constpromise2newPromise((resolve,reject)setTimeout(reject,100,foo));constpromises〔promise1,promise2〕;Promise。allSettled(promises)。then((results)results。forEach((result)console。log(result。status)));expectedoutput:fulfilledrejected5。2Optional?constusernameuser?。nameguest;5。3Nullishcoalescingoperator??
  在JavaScript中,0、null或undefined会自动转为false,但有时候希望将返回值设置为0。constusernameuser。level??nolevel;output0。iflevelisnotavailable,itbecomesnolevel。5。4Dynamicimport动态引入el。onclick(){import(jslogger。js)。then((module){module。doSomthing();})。catch((err){handleError(err);});};5。5GlobalThis
  全局globalThis属性包含全局this值,类似于全局对象。functioncanMakeHTTPRequest(){returntypeofglobalThis。XMLHttpRequestfunction;}console。log(canMakeHTTPRequest());expectedoutput(inabrowser):true6。ES12(ES2021)6。1Promise。any()
  Promise。any()接受一个可迭代的Promise对象,每当可迭代对象中的任何一个Promisefullfill时它都返回一个Promise,其中包含已fullfill的Promise的值。如果所有的Promisereject则返回AggregateError对象,其是ERROR对象的一个子类,默认搜集所有Error并分组。constp1newPromise((resolve){setTimeout((){resolve(p1resolvedvalue);},1000);});constp2newPromise((resolve){setTimeout((){resolve(p2resolvedvalue);},500);});constp3newPromise((resolve){setTimeout((){resolve(p3resolvedvalue);},1800);});Promise。any(〔p1,p2,p3〕)。then((value){console。log(value);});p2resolvedvalue6。2逻辑赋值运算符
  在开发过程中,可以使用在ES2020引入的逻辑运算符、和??(Nullishcoalescingoperator)来解决一些问题。而ES2021会提出,,??,概念类似于:letb2;b1;equaltobb1letanull;asomerandomtext;abecometosomerandomtextequalaasomerandomtextletcsomerandomtexts;cnull;cbecometonullequaltoccnullletdnull;d??false;dbecometofalseequaltodd??false6。3弱引用(WeakRef)
  WeakRef对象持有对对象的弱引用,称为其目标或引用对象。对对象的弱引用是不会阻止对象被垃圾收集器回收的引用。
  普通(或强)引用将对象保存在内存中,当一个对象不再具有任何强引用时,JavaScript引擎的垃圾收集器可能会销毁该对象并回收其内存,如果发生这种情况,您将无法再从弱引用中获取对象。7。ES13(ES2022)
  期待不一样的东西参考资料原文链接:https:medium。com
  waterfishfromes6toes13f72d4840986a
  文字封面图片:https:app。daily。devposts5k4Dlnc3E

索尼预告新手机为内容创作者打造的新一代XperiaIT之家5月2日消息,日前,索尼宣布将于北京时间5月11日15点举行Xperia新品全球发布会,官方称NextONEiscoming。今天,索尼发布了一段预热视频,题为为……消息称荣耀新旗舰将于89月发布,与华为Mate50和苹果iPIT之家6月10日消息,有多个数码博主透露,荣耀新旗舰手机、华为Mate50系列将于今年8月发布,除此之外还有其他厂商的旗舰手机,例如9月的苹果iPhone14系列,可能还包括……法国国脚或因过早与女友和好而入狱,律师可以白天踢球晚上服刑前几天据西班牙媒体报道,现效力于拜仁慕尼黑的法国后卫卢卡斯埃尔南德斯有可能要被迫返回西班牙蹲监狱,整个故事听起来都非常离奇,而现在甚至还有更诡异的展开。事情要从2017年……名单发布?中国女排20人被蔡斌重用,七仙女王梦洁疑似落选?最近,随着2022中国女排第一次被轮集训的结束。初步来看,蔡斌对目前的女排球员们已经有了一个基本考核。虽然目前最后的大名单还没有出来,但是据知情人士透露。接下来,他会选拔出20……谷歌Chrome浏览器将支持虚拟信用卡IT之家5月18日消息,据MSPoweruser报道,GoogleChrome现在允许你在购物时使用虚拟信用卡,让在线购物体验更加轻松顺畅。可以帮助用户每次都在网络上与最喜欢的……谷歌推出全新受安卓保护品牌绿色盾牌LogoIT之家5月18日消息,据9to5Google报道,谷歌一直在寻求改善其移动操作系统的安全和隐私的普遍看法。谷歌最新推出了ProtectedbyAndroid(受安卓保护)品牌……小米12Ultra核心配置全曝光搭载骁龙8芯片,5000万三众所周知,小米已与徕卡双方已达成战略合作,其首款产品将于7月份登场,不出意外该机就是传闻已久的超大杯旗舰小米12Ultra。随着发布时间的日益临近,外界关于该机的爆料也更加密集……伍德人们一直说我们连胜期间没打过强队这次我们赢了篮网直播吧12月10日讯昨天结束的一场比赛,火箭击败篮网,此战之后,球队已经豪取7连胜。赛后接受采访时,伍德谈到了这场胜利,表示考虑到本场比赛击败的对手,相比前6场胜利,他们……悬念再起!瓜迪奥拉一语成谶,曼城踩了脚刹车后,利物浦追上来了英超的冠军悬念,还会有吗?周中,切尔西在提前进行的英超第24轮比赛中,被布莱顿逼平,在多赛1场的情况下,与领头羊曼城的差距仍然有12分。考虑到切尔西2月份还有世俱杯的任务……索尼Xperia5IV小屏手机曝光骁龙8Gen112GB内存IT之家6月12日消息,索尼最新的旗舰手机Xperia1IV此前已开售,国行8499元起。另一方面,大量粉丝开始期待今年的小屏手机Xperia5IV,预计将会在今年晚些时候发布……目前拍照最出色的四款手机,影像实力不输小单反,拍照爱好者必备如果你对手机拍照有着较高的要求的话,强烈建议考虑这是看机型,影像实力直追小单反喜欢拍照的朋友千万不要错过,这几款机型绝对是目前最佳选择。第一款:OPPOFindX5Pro……微信安卓内测版8。0。23开发者内容公布IT之家5月18日消息,微信近期发布了安卓测试版8。0。23更新,显示性能检测工具入口已经消失。今天微信官方公布了开发者内部体验(安卓微信8。0。23)内容。小程序优化启……
何以中国?何以为中?中,是中国人和中国文化的最大特征。但到底什么是中,大部份人知其然,不知其所以然。中的意思很简单,空间上表示中央,内里,时间上表示持续不断,人事上表示中正,不偏不倚,合乎期……杭州湾海桥上的风景(图片来之网友)想体验仿佛在水上开车的感觉,就去走趟杭州湾跨海大桥。杭州湾跨海大桥全长36千米,成S弯型结构,造型非常优美,白天远远望去,仿佛漂浮在海面上的一条绳索,晚上……能放进口袋的三星GalaxyZFlip,还有ThomBrowIT之家2月12日消息今日凌晨,三星正式发布了折叠屏手机GalaxyZFlip。三星GalaxyZFlip采用三星独有的可弯曲超薄玻璃(UTG),可折叠成钱包大小,售价1380……一文看懂三星Galaxy新品发布会折叠新机和百倍变焦S20正2月12日凌晨消息,三星电子今日在美国旧金山举办全球发布会,推出年度旗舰GalaxyS20系列,折叠屏手机新品GalaxyZFlip,以及GalaxyBud无线耳机等。原以为是……三星折叠屏手机GalaxyZFlip正式发布采用可弯曲超薄玻IT之家2月12日消息今日凌晨,三星正式发布了折叠屏手机GalaxyZFlip。GalaxyZFlip采用6。7英寸OLED屏幕,可折叠成钱包大小,搭载Android10操作系……天河走遍世界,他只为追寻小时候,一到冬天,常有一些养蜂人,携着蜂箱,到村里住下来。然后,就出现了那么一幅美美的画面:成百上千的蜜蜂,在乡村的田野里飞舞、采蜜。那时候,乡村的空气仿佛都散发着一股甜……本溪银行窝案历经7年终于判了!支行副行长以权谋私700余万,近日,本溪银行的一起窝案浮出水面,因违法放贷,支行行长、副行长等9名银行职员被判刑。金融界梳理发现,这起案件从2015年起,经历了7年时间,经过4次审理终于迎来终审判决。……台电T40平板本月上市2K全贴屏,搭载虎贲T618IT之家3月26日消息根据台电官方的消息,台电T40将于本月上市,这款安卓平板搭载了虎贲T618处理器,配备2K全贴合屏。IT之家了解到,台电T40正面是一块10。4英寸……1599元,华为平板C3宣传图曝光8英寸屏幕,搭载联发科MTIT之家6月4日消息今天IT之家报道,型号为AGS3W00D、AGS3W00E的华为平板电脑现已通过3C认证,配备10W充电器。申请人、制造商均为华为技术有限公司,生产厂为南昌……IT之家开箱华为P40Pro图赏微晶陶瓷,温润如玉IT之家6月1日消息华为P40系列手机于今年4月正式发布,拥有P40、P40Pro与P40Pro三个版本。IT之家现已拿到华为P40Pro陶瓷白版本,并为大家拍摄了精美的图赏,……华为官方福利明起至6月30日,碎屏宝延长宝服务一律8折IT之家5月31日消息今日午间华为终端客服官方宣布,明日起到6月30日华为官方碎屏宝、延长宝8折优惠。华为碎屏服务宝延长服务宝的有效期均为一年。购买前一项服务的用户在有效……全力供货华为海思!台积电目前尚无下修全年资本支出打算据台湾媒体报道,供应链透露,美方对华为的新禁令可能打乱台积电接单和产能扩建节奏,若美方不松手,台积电很可能在7月的财报说明会宣布下修今年全年资本支出。台积电台积电日……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网