[附录2]可维护的代码的 -JS- 语言的注意

 

 

 

    可维护的代码:
        ·>  可读的                                eslint
        ·>  看上去就像是同一个人写的                eslint
        ·>  一致的                                代码约定, IDE格式化规范                                
        ·>  可预测的                                代码的测试
        ·>  已记录                                git



1. 使用变量声明符号进行变量的声明。

    a是本地变量但是b确实全局变量,这可能不是你希望发生的:

    // 反例,勿使用 
    function foo() {
       var a = b = 0;
       // ...
    }

    // 使用链分配
    let a, b;


2. 声明单声明符
    
    function func() {
       var a = 1,
           b = 2,
           sum = a + b,
           myobject = {},
           i,
           j;
       // function body...
    }


3. 缓存引用
     let el = document.getElementById("result"),
     style = el.style;


4. 缓存数组(或集合)的长度是比较好的形式

    for (var i = 0, max = myarray.length; i < max; i++) {
       // 使用myarray[i]做点什么
    }


5. hasOwnProperty()

    // 一个方法添加给了所有对象
    if (typeof Object.prototype.clone === "undefined") {
       Object.prototype.clone = function () {};
    }

    // 过滤原型链上的属性
    for (var i in man) 1{
       if (man.hasOwnProperty(i)) { // 过滤
          console.log(i, ":", man[i]);
       }
    }

    // 进行缓存
    // 警告: 通不过JSLint检测
        var i, hasOwn = Object.prototype.hasOwnProperty;
        for (i in man) if (hasOwn.call(man, i)) { // 过滤
            console.log(i, ":", man[i]);
        }


6. switch..case..

    switch模式(switch Pattern)
    你可以通过类似下面形式的switch语句增强可读性和健壮性:

    var inspect_me = 0,
        result = '';
    switch (inspect_me) {
    case 0:
       result = "zero";
       break;
    case 1:
       result = "one";
       break;
    default:
       result = "unknown";
    }


7. 避免隐式类型转换
8. 避免(Avoiding) eval()

 

posted @ 2019-05-08 15:20  aocn  阅读(87)  评论(0)    收藏  举报