zoukankan      html  css  js  c++  java
  • JavaScript编写风格指南 (一)

    //参考《编写可维护的Javascript》

     一:缩进
    // 第一行的层级由4个空格组成,避免使用制表符tab进行缩进

    //好的写法
    if (true) {
        doSomething();
    }

     二:行的长度
    // 每行长度不应该超过80个字符。如果一行对于80个字符,应当在一个运算符(逗号,加号符)
    // 后换行。下一行应当增加两级缩进

    //好的写法
    doSomething(argument1, argument2, argument3, argument4,
        argument5);

     三:原始值
    // 字符串应当使用双引号(避免使用单引号)且保持一行。避免在字符串中使用斜线另起一行

    //好的写法
    var name = "M";

    //不好的写法
    var name = 'M';

    //不好的写法:字符串结束之前换行
    var longString = "Here's the sorry, of a man
    named Brady.";

    // 数字应当使用十进制整数,科学计数法表示整数,十六进制整数,或者十进制浮点小数,
    // 小数点前后应当至少保留一位数字。避免使用八进制直接量

    //好的写法
    var count = 10;
    var price = 10.00;
    var price = 10.0;
    var num = 0x23;

    //不好的写法
    var price = 10.;
    var price = .1;
    var price = 010;

    特殊值null除了下述情况下应当避免使用
    // 1.用来初始化一个变量,这个变量可能被赋值为一个对象
    // 2.用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象
    // 3.当函数的参数期望是对象时,被用作参数传入
    // 4.当函数的返回值期望是对象时,被用作返回值传出

    Example:

    //好的写法
    var person = null;

    //好的写法
    function getPerson() {
        if (condition) {
            return new Person("M");
        } else {
            return null;
        }
    }

    //好的写法
    var person = getPerson();
    if (person !== null) {
        doSomething();
    }

    //不好的写法:和一个未被初始化的变量比较
    var person;
    if (person != null) {
        doSomething();
    }

    //不好的写法:通过测试判断某个参数是否被传递
    function doSomething(arg1, arg2, arg3, arg4) {
        if (arg4 !== null) {
            doSomething();
        }
    }

    //避免使用特殊值 undefined 判断一个变量是否定义应当使用typeof操作符

    //好的写法
    if (typeof variable == "undefined") {
        //do something;
    }

    //不好的写法:使用了undefined直接量
    if (variable == undefined) {
        // do something;
    }

    四:运算符间距


    // 三元运算符前后必须使用一个空格来保持表达式的整洁。
    // 操作符包括赋值运算符和逻辑运算符

    //好的写法
    var found = (value[i] === false);

    //好的写法
    if (found && (count > 10)) {
        doSomething();
    }

    //好的写法
    for (i = 0; i < count; i++) {
        process(i);
    }

    //不好的写法:丢失了空格
    var found = (varlues[i]===false);

    if (found&&(count>10)) {
        doSomething();
    }

    for (i=0; i<count; i++) {
        process(i);
    }

    五:括号间距


    // 当使用括号时,紧接左括号右括号之前不应该有空格

    //好的写法
    var found = (varlues[i] === false);

    //好的写法
    if (found && (count > 10)) {
        doSomething();
    }

    //好的写法
    for (i = 0; i < count; i++) {
        process(i);
    }

    //不好的写法:左括号之后有额外的空格
    var found = ( varlues[i] === item);

    六:对象直接量


    // 对象直接量应当使用下列格式
    // 1.起始左花括号应当使用如下格式
    // 2.每个属性的名值对应保持一个缩进,第一个属性应当在左花括号后另起一行
    // 3.每个属性的名值对应当使用不含引号的属性名,气候紧跟一个冒号(之前不含空格),而后是值
    // 4.倘若属性值是函数类型,函数体应当在属性名之下另起一行,而且其前后均应保留一个空行。
    // 5.一组相关的属性前后可以插入空行以提升代码的可读性
    // 6.结束的右花括号应当独占一行

    Example:

    //好的写法
    var object = {

        key1: value1,
        key2: value2,

        func: function() {
            //do something
        },

        key3: value3
    };

    //不好的写法:不恰当的缩进
    var object = {
                    key1: value1,
                    key2: value2
    };

    //不好的写法:函数体周围缺少空行
    var object = {

        key1: value1,
        key2: value2,
        func: function() {
            //do something
        },
        key3: value3
    };

    当对象字面量作为函数参数时,如果值是变量,起始花括号应当同函数名在同一行。
    所有其余先列出的规则同样适用。

    //好的写法
    doSomething({
        key1: value1,
        key2: value2
    });

    //不好的写法:所有代码在一行上
    doSomething({ key1: value1, key2: value2 });

    通过分享,结交好友~ 如本文对您有益,请给予关注。转载请注明出处!-- 小数
  • 相关阅读:
    回调函数 协程
    网络编程 之线程
    并发编程 之进程相关
    并发编程的理论 python中实现多进程
    基于tcp的粘包处理终极版本
    基于socket的网络编程
    数据分析
    zabbix从入门到放弃
    Linux
    Django
  • 原文地址:https://www.cnblogs.com/mcat/p/3994383.html
Copyright © 2011-2022 走看看