zoukankan      html  css  js  c++  java
  • javascript代码重构需要考虑的问题(一)

    1.将数组的长度进行存储,循环时就不用每次去读取一次数组长度,从而提升性能
    例如:
      for (var i = 0, len = arr.length; i < len; i++) {
          //do something...
        }
    2.js中所有 非空字符 ,非零,作布尔运算时,都会返回 true,反之返回 false。 (空格 属于非空字符)
    例如:
    if (value) {
        //do something...
    }
     
    3.多层条件嵌套,进行 转换 或 拆分

    //bad if (user.id === 10) { if (user.name !== "") { if (user.email === "email") { //do something... } } } //good if(user.id === 10 && user.name !=="" && user.email === "email") { //do something... } //good if (user.id !== 10) return; if (user.name === "") return; if (user.email !== "email") return; //do something...

    4. 尽可能的减少DOM操作,将DOM操作放在循环体之外,数据处理好后,只执行一次DOM操作即可。

    5.避免使用 连等号 声明赋值变量。js基础好点的同学都知道,这里存在着一个坑: b 会被声明为全局变量,意思就是在 test() 方法之外b也是可以被访问到的。  全局变量是不推荐使用的,容易污染环境。

    6.

    //bad
    if (age > 20) {
    console.log("年龄大于20");
    }

    //good
    (age > 20) && console.log("年龄大于20");

    这里的bad并不是说第一种写法不好,其实就可读性来说,第一种比第二种更好。 只是第二种写法更加优雅一点(个人觉得)。 这个句法可能有些同学用的比较少,解释一下:

    如果第一个条件为 true ,那么就执行后面的语句,第一个条件为false, 后面的语句便不会执行。后面的语句可以是表达式,方法,或变量,常量都可以。 比如 (age > 20) && test()。

    https://www.cnblogs.com/similar/p/5016424.html

     

      

  • 相关阅读:
    2. Redis哨兵、复制、集群的设计原理与区别
    1. 详解Redis的存储类型、集群架构、以及应用场景
    博客园主题优化
    【Java基础】Java面试题精选
    【Java集合】——集合类分析总结
    新零售供应链的三大闭环
    Comparable和Comparator比较实现排序 场景分析
    Java基础-枚举类
    Java基础-泛型
    微服务架构~BFF和网关
  • 原文地址:https://www.cnblogs.com/zzty/p/8530119.html
Copyright © 2011-2022 走看看