专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

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

脑梗来临时,并非悄无声息!提醒睡觉出现4个异常,需警惕脑梗我这怎么突然看不见东西了!王大爷今年62岁了,他除了下象棋以外,别的没有什么爱好。王大爷平时喜欢看一些医学类的科普,而且自己也比较注重养生,所以身体一直都还不错。今天,王大爷像往常八纲辨证是中医辨证论治的总纲中医治病不难,难在准确诊断,不是吗?中医辨证难就难在八纲辨证。八纲辨证为中医辨证论治的总纲。其阴阳表里寒热虚实说起来简单,实为中医的真谛。初学者或学识浅者准确运用就非常难,往往在辨聊中药柏子仁侧柏,这个植物的名字大家或许都很陌生,但实际上我们常常能在街边和小区的绿化带中看到它。侧柏浑身都是宝,除了广为人知的绿化作用,它的叶子种仁等都能拿来入药。今天聊聊侧柏的种子,柏子仁二十四节气养生小雪宜防寒保暖,温补护阳小雪,是二十四节气中的第20个节气,冬季第2个节气,时间在每年公历11月22或23日,即太阳到达黄经240时。小雪是反映降水与气温的节气,它是寒潮和强冷空气活动频数较高的节气。小雪高血压高血脂糖尿病的9大谣言,不靠谱在哪?高血压高血脂糖尿病是不能再常见的慢性病了,但依旧存在不少谣言和误区,很多人还在信!这些谣言和误区不靠谱的地方在哪?一起来看看!关于高血压的谣言平时没有不舒服不需要测血压没有不舒服,经典讽刺剧王保长新编金钱诱惑众生百相荒诞背后的混沌闹剧好的讽刺作品是真正值得细细的品味,越看越有味道。荒诞的背后,让你体会出底层百姓生活的不易,笑料新颖,讽刺入骨三分,所讽刺的现象在现实生活中仍在发生着。王保长新编是改编自小说抓壮丁,国民级反套路卡牌自在西游12月29日正式公公测下半年备受期待的国民级自由策略卡牌自在西游来了!今日,游戏官宣12月29日正式公测!除了在首次亮相阶段就展示出的精致美术,这一次自在西游公布了更多玩法福利等信息,宣称要打造出一款反最新业绩报告出炉腾讯阿里利润端明显改善中国基金报记者姚波??互联网寒冬之后,业绩拐点何时到来?两大巨头最新业绩报告发出了重要信号。腾讯和阿里业绩数据显示,营收同比增减变化不大,宏观逆风下保住了营收端的同时,利润端也有明减持,还得看腾讯减持,还得看腾讯!从股权投资管理人的角度,看腾讯分红式减持美团,在壮士断腕似的行动里,饱含着其维护平台经济生态的智慧与努力。文子苏微信公众号玖豫企服11月16日,腾讯清仓式减持美团福田汽车公司面向不同应用场景规划布局氢燃料商用车全系列车型有投资者在投资者互动平台提问福田汽车是国内最早研发氢燃料商用车的厂家,请问目前对比其他竞争厂家,福田汽车在氢燃料产品这块有何优势?,福田汽车11月21日在投资者互动平台表示,公司目那些治愈我们的经典语录你是年少的欢喜这句话反过来也是你他出现在我爱意最纯净也最浓烈的时候且是唯一得过满分的人我想与你相遇在这春天,要你记得这个花香,也想得起我们的时光你和萤火虫有两个共同点在我眼里都会发
安全生产和应急避险科普驾驶人冬季行车安全要牢记东营日报社爱东营讯三九正式开启,气温却节节攀升。据实况监测显示,全省气温最高达到16。9。但一场久违的雨雪大风强降温天气正在酝酿,这股冷空气强度较强,影响范围也比较广,全省大部地区最新研究成果!波及全球20亿人口近年来,由于气候变化的影响,全球不少冰川以惊人的速度在融化。近期,一项研究显示,全球约半数到八成多的冰川预计在本世纪末完全融化消失。科研人员称,冰川萎缩和消失的速度比科学家此前预测特斯拉中国三天内获3万辆订单,陶琳称卖不动才降价是无稽之谈IT之家1月10日消息,近日,特斯拉中国宣布,在售Model3及ModelY全系国产车型将调整售价,Model3起售价直降3。6万元,ModelY起售价直降2。9万元,两款车型其余储能行业深度报告能源革命大势所趋,推动全球储能蓬勃发展(报告出品方作者华金证券,刘荆顾华昊)一储能在电力系统全场景大有可为在电力系统中,储能的应用场景可以分为发电侧储能电网侧储能和用电侧储能。不同的储能应用场景所发挥的作用不同。(一)从3000亿到4000亿!7。5万义乌商家为全球经济输入中国确定性来源环球时报环球时报报道记者倪浩1月8日,中国出入境重新开放首日,来自义乌机场的数据显示,航班架次已恢复至疫情前同期水平。在世界小商品之都浙江义乌,商户们最近收到国外采购商发来的消中国足协杯产生四强新华社南京1月8日电(记者王恒志)2022中国足协杯四强8日在江苏苏州全部产生,上海海港队和浙江队分别战胜各自对手晋级半决赛。上海海港队和浙江队首回合都取得大胜,晋级悬念不大。次回是什么阻碍中国足球的发展之个人管见第一,足球,是个集体竞技项目。为避免一个人是龙,两个人以上是虫的弊病。必须强调集体主义。记得女排元老袁伟民说过,他执教的中国女排,数年都没有评过什么先进队员的活动。第二,痪积贫症基不计前嫌!孔令辉回归国乒再做贡献,穿中国队战袍跟随蔡振华亮相名声对于每一个人来说都是非常的重要,从近日国乒教练组的大改动中,我们看到了非常多优秀的教练登上了自己心仪的位置,想要为国乒献出自己的努力,其中令人意外的当属教练孔令辉,这一次的他将会有惊喜吗?重新起航的中国足球,2023年将驶向何处2022赛季足协杯尚未结束,但中国足球的2023年已经开始了。2022是世界足球大年,可中国足球却经历了一个小年中国男足不但早早失去了进军世界杯的希望,还在大年初一的节点输给越南,姚明13岁女儿身高达1米9,亭亭玉立名模胚子,却无法为中国队效力此前,中国篮协通过线上会议的方式商讨了换届事宜。最终,姚明不出意料地以压倒性优势继续连任篮协主席。在本届篮协的领导班子里,除了主席姚明以外,郭振明徐济成宫鲁鸣和王芳等人都是成功入选眼睛总是经常掉睫毛干涩发痒?可能是螨虫惹的祸!蠕形螨是人体最常见的一种寄生虫,在我们的眼部,蠕形螨可出现在睫毛睫毛毛囊以及睑板腺上。图片来源于网络很多人发现眼部不适红干痒胀痛时,就找各种眼药水滴滴滴,然而却不见效果图片来源于网
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网