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

     

      

  • 相关阅读:
    找一个写心的地方!
    找一个写心的地方!
    CentOS 6.4最小安装
    poj 3013 Big Christmas Tree 最短路 dijkstra算法
    poj 2449 Remmarguts' Date 第K短路
    CCNUOJ 1010 The Almost Lucky Numbers
    Java容器学习心得Set容器
    CCNUOJ 1027 教你前缀
    我的第一个C++程序( C++语言程序设计项目任务书 )
    CCNUOJ 1031 数组操作(树状数组)
  • 原文地址:https://www.cnblogs.com/zzty/p/8530119.html
Copyright © 2011-2022 走看看