国内最专业的IT技术学习网

UI设计

当前位置:主页 > UI设计 >

为什么我喜欢JavaScript的Optional Chaining

发布时间:2019/08/28标签:   属性    点击量:

原标题:为什么我喜欢JavaScript的Optional Chaining
JavaScript 的特征极大地转变了你的编码方法。从 ES2015 开端,对我代码影响最多的功效是解构、箭头函数、类和模块体系。停止 2019 年 8 月,一项新提案 optional chaining 到达了第3阶段,这将是一个很好的改良。Optional Chaining 转变了从深层工具构造拜访属性的方法。上面让咱们来看看 optional chaining 是怎样经过在深度拜访能够缺乏的属性时删除榜样前提和变量来简化代码的。1. 成绩因为 JavaScript 的静态特征,工具能够有差别很大的嵌套工具构造。平日,你在以上情况下处置此类工具: 猎取近程 JSON 数据 应用设置工具 存在 optional 属性固然这为工具供给了支撑差别构造数据的机动性,然而在拜访这些工具的属性时会增添庞杂性。bigObject 在运转时能够有差别的属性集://OneversionofbigObjectconstbigObject={//...prop1:{//...prop2:{//...value:'Somevalue'}}};//OtherversionofbigObjectconstbigObject={//...prop1:{//Nothinghere}};因而,你必需手动检讨属性能否存在://Later if(bigObject&&bigObject.prop1!=null&&bigObject.prop1.prop2!=null){letresult=bigObject.prop1.prop2.value;}这会发生许多榜样代码。假如不须要写这些代码那就太好了。让咱们看看 optional chaining 怎样处理这个成绩,并增加榜样前提。2. 轻松的深刻拜访属性让咱们计划一个保留片子信息的工具。该工具包括一个 title 属性,以及可选的 director 和 actors。movieSmall 工具只包括 title,而 movieFull 包括完全的属性集:constmovieSmall={title:'Heat'};constmovieFull={title:'BladeRunner',director:{name:'RidleyScott'},actors:[{name:'HarrisonFord'},{name:'RutgerHauer'}]};让咱们写一个猎取导演名字的函数。请记着,director 属性能够会不存在:functiongetDirector(movie){if(movie.director!=null){returnmovie.director.name;}}getDirector(movieSmall);//=>undefinedgetDirector(movieFull);//=>'RidleyScott'if (movie.director) {...} 前提用于考证 director 属性能否已界说。假如没有这个防备办法,在拜访movieSmall 工具 director 的时间,JavaScript 会抛犯错误 TypeError: Cannot read property 'name' of undefined。这是应用新的 optional chaining 功效的准确地位,并删除 movie.director 的存在考证。新版本的getDirector()看起来要短很多:functiongetDirector(movie){returnmovie.director?.name;}getDirector(movieSmall);//=>undefinedgetDirector(movieFull);//=>'RidleyScott'在表白式 movie.director?.name 中你能够找到 ?.: optional chaining 运算符。在 movieSmall 的情形下,假如属性 director 丧失了。那末 movie.director?.name 的盘算成果为 undefined。 optional chaining 运算符可避免抛出 TypeError:Cannot read property 'name' of undefined。相同,在 movieFull 的情形下,属性 director 可用。 movie.director?.name 的值为 'Ridley Scott'.。简略来讲,代码片断:letname=movie.director?.name;

上一篇:物联网安全会被企业重视吗

下一篇:没有了

返回
版权信息Copyright ? IT技术教程 版权所有??? ICP备案编号:鲁ICP备09013610号