当前位置: 首页 > news >正文

网站建设自学网免费代理网址

网站建设自学网,免费代理网址,网络推广公司营销方案,北京广告网站建设序#xff1a;如何让代码看起来更优雅#xff1f;代码是由文字堆叠起来的可以被机器执行的程序。它记载着相关信息#xff08;状态#xff09;、表达相关的情绪#xff08;函数#xff09;#xff0c;所以如何能够写出简洁、优雅、健壮、可维护性强的程序至关重要。本系… 序如何让代码看起来更优雅代码是由文字堆叠起来的可以被机器执行的程序。它记载着相关信息状态、表达相关的情绪函数所以如何能够写出简洁、优雅、健壮、可维护性强的程序至关重要。本系列笔记的目的就是带着大家如何实现更有效、更优雅的编程。笔记涵盖运算符、流程语句、设计模式、ES6 新增方法等多个方面。 1. 逻辑或运算符 || 逻辑或运算符也叫短路运算符。当 || 运算符左边的值为 true 时则返回左边表达式的值反之则返回右边表达式的值。如下 true || false // true false || true // true 10 20 || Hello // Hello|| 0 // 0 undefined || null // null上面代码是逻辑或最常用的场景其实基于上面的场景可以来优化大家经常写的 if…else 代码如下 let result if (a) {result a } else {result b }很简单的一段代码但是使用短路运算符要简洁的多如下 let result a || b看到这里是不是有一种 “柳暗花明又一村” 的感觉那就让我们接着往下看吧。 2. 三元运算符 ? : 提到 if…else 优化就不得不说一下三元运算符了。这个运算符在替换条件语句的时候也是很好用的。但是注意不要嵌套太多层哦毕竟嵌套多了可读性就不强了也就背离了我们代码优化的目的。 语法格式 条件表达式 ? 条件表达式成立的值 : 条件表达式不成立的值这样上面的 if 语句使用三元运算符表示如下 let result a ? a : b当然写到这里见多识广的你可能会想到上面的语句还能再一步优化这里先卖个关子大家可以在后面的案例中查找彩蛋。 三元表达式在诸如条件判断、条件赋值、递归等场景应用也是比较多的。如下实现一个累加函数 使用条件语句实现 let sum 0; function increment (n) {sum nif (n 1) return sumelse return increment(n - 1) }使用三元运算符实现 let sum 0; function increment (n) {sum nreturn n 2 ? increment(n - 1) : sum }3. 对象/数组配置 对于条件复杂的多重判断三元运算符可读性不强条件语句和选择语句可以实现但是写起来很麻烦代码变得很臃肿。如下 条件语句实现 let dayNum 1 let getWeekDay (dayNum) {if (dayNum 7) {return 星期日} else if (dayNum 1) {return 星期一} else if (dayNum 2) {return 星期二} else if (dayNum 3) {return 星期三} else if (dayNum 4) {return 星期四} else if (dayNum 5) {return 星期五} else if (dayNum 6) {return 星期六} else {return 不是合法的值} }选择语句实现 let result; switch (dayNum) {case 0: result 星期日breakcase 1: result 星期一breakcase 2: result 星期二breakcase 3: result 星期三breakcase 4: result 星期四breakcase 5: result 星期五breakcase 6: result 星期六breakdefault:result 不是合法的值break } return result;看到这里你应该已经不想看了不禁吐槽这也太麻烦了吧是的所以我们想办法优化他吧比方把相关的数据封装到数组或者对象中然后取对应的值呢 数组方式实现 let days [星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日] let result days[dayNum] ?? 不是合法的值对象方式实现 let days {0: 星期日,1: 星期一,2: 星期二,3: 星期三,4: 星期四,5: 星期五,6: 星期六, } let result days[dayNum] ?? 不是合法的值这样的代码在你看来是不是有一种“神清气爽”的感觉。ES6 中新增 Map 对象我们同样可以使用 Map 来实现上面的功能原理都是一样的。 let days new Map([[0, 星期日],[1, 星期一],[2, 星期二],[3, 星期三],[4, 星期四],[5, 星期五],[6, 星期六] ]) let result days.get(dayNum) || 不是合法的值4. 复杂条件分支优化 上面所列举的都是一些比较简单直接的判断条件如果判断条件过于复杂那么我们应该如何去处理呢先看下面这段改造代码 let days {0: () 星期日,1: () 星期一,2: () 星期二,3: () 星期三,4: () 星期四,5: () 星期五,6: () 星期六, } let result days[dayNum] ? days[dayNum]() : 不是合法的值看过上面的代码你可能会说这不还是 key-value 形式吗无非就是多了一步需要执行函数才能获得对应的值。没错但是这样的好处是你可以在对应的函数中执行任何你想实现的逻辑相对更加灵活一些。 那么回过头了我们继续说复杂条件分支的优化问题如下 let score 98; let getResult (score) {if (score 100 score 90) {return 优秀} else if (score 90 score 80) {return 良好} else if (score 80 score 70) {return 中等} else if (score 70 score 60) {return 及格} else if (score 60 score 0) {return 不及格} else {return 非法字符} }很明显上面判断的条件表达式不再是简单的等值判断了像这种情况我们依旧可以按照上面的思想进行优化改造。可以考虑使用二维数组实现。 二维数组方式 let scores [[(score) score 100 score 90, () 优秀],[(score) score 90 score 80, () 良好],[(score) score 80 score 70, () 中等],[(score) score 70 score 60, () 及格],[(score) score 60 score 0, () 不及格] ] let getResult (score) {// 判断符合条件的子数组let obj scores.find(v v[0](score))// 子数组存在则运行数组中第二个函数元素否则返回其它信息let result obj ? obj[1]() : 非法字符return result; }这里注重的是最终得到的结果而不是获得结果的过程。当今硬件性能过剩下情况下我们通过这种更加优雅、简洁、可维护性的方式来获取最终想要的结果显然是更可取的。 你要记住优雅永不过时,浪漫至死不渝。 好了到这里《JS代码优化一》分享就已经结束了如果感觉还不错记得点赞收藏。你还知道哪些代码优化的方案呢那就写出来把。
http://www.w-s-a.com/news/384324/

相关文章:

  • 茶叶网站开发目的和意义网页设计需要考什么证
  • 高端企业网站建设公司怎么做实用性建设网站都需要哪些
  • 网站备案必须要幕布吗易企秀网站怎么做轮播图
  • 南昌网站排名优化四线城市网站建设方向及营利点
  • 做网站需要钱吗unity 做网站
  • 呼伦贝尔市规划建设局网站wordpress怎么考别人的
  • 免备案自助建站网站成都神速建站
  • 怎样编写app软件快速刷排名seo软件
  • 江苏做家纺的公司网站宣传型企业网站
  • 网站网上商城建设外国一些做环保袋的网站
  • 做空气开关那个网站推广比较好建站技术有哪些
  • 做网站前需要做什么准备wordpress图片云储存
  • 查楼盘剩余房源的网站地方网站推广
  • 农家乐网站建设方案创意平面设计公司简介
  • 信息化建设 网站作用网络营销的形式网站营销
  • 沈阳出名网站潍坊正规建设网站
  • 计算机软件开发需要学什么沈阳网站关键字优化
  • 关于军队建设网站国内最好的wordpress主题
  • 小视频网站如何建设陪诊app开发
  • 英文网站首页优化国外手机网站源码
  • 网站建设公司如何找客户网站建设应该考虑哪些问题
  • 创新的江苏网站建设wordpress用户绑定手机
  • 自己做网赌网站网站设计者
  • 教育培训网站设计辽宁招标工程信息网
  • 韶关网站推广做网站要哪些人员
  • 建设银行网站链接开发公司与物业公司交接清单
  • 网站定位广告企业建网站有这个必要吗
  • 网站模板 商标黄冈建设工程信息网
  • 做鞋子的招聘网站有哪些微网站
  • 项目网站开发建网站 多少钱