KM Style Guide

  1. function 前面不留空格。

    提倡
    var x = function() {};
    不要
    var x = function () {};
  2. 除了 catch 以外,不允许写空的 {}

    提倡
    if (a === b) {c = true }
    try {a = b} catch(e) {};
    不要
    if (a ===b_ {} else {d == false}
  3. function 后不加空格。

    提倡
    var x = foo();
    不要
    var x = foo ();
  4. 单行数组方括号后不加空格。

    提倡
    var x = [1, 2];
    var x = [1, [2, 3]];
    不要
    var x = [ 1, 2];
    var x = [1, 2 ];
    var x = [1, [ 2, 3 ] ];
  5. 在表达式语句中,不允许在括号前后加空格。

    提倡
    var x = (3 + 4) * 5;
    var x = (3 * (4 + 5)) * 6;
    不要
    var x = ( 3 + 4);
    var x = (3 + 4 );
    var x = (3 + ( 4 * 5) ) / 6;
  6. 声明对象时,冒号前面不加空格。

    提倡
    var x = {a: 1};
    var y = {
        a: 1
    };
    不要
    var x = {a : 1};
    var y = {
        a : 1
    };
  7. 不要在一元运算符后面加空格。

    提倡
    var x = ++y;
    不要
    var x = ++ y;
  8. 禁止使用Tab缩进,全部使用2个空格缩进。

    提倡
       x = 1; // \t
       y = 2; // \s\s\s\s
    不要
         z = 3; // \t\s
  9. 做条件对比时,变量名在左边,条件在右边。

    提倡
    if (a === 1) {
        return;
    }
    不要
    if (1 === a) {
        return;
    }
  10. 不要使用如下关键字:

    • "with"
  11. else 语句不换行:

    • "else"
    提倡
    } else {
    不要
    }
    else {
  12. 在正常语句中不允许出现多个空行。

    提倡
    var x = 1;
    
    x++; // preceeding line is empty
    不要
    var x = 1;
    
    
    x++; // preceeding two lines are empty
  13. 多行字符串使用 「+」进行拼接。

    提倡
    var x = "The " +
            "Lazy Dog";
    不要
    var x = "The\
            Lazy Dog";
  14. 除非在 for 循环语句中,不允许一个 var 声明多个变量。

    提倡
    var x = 1;
    var y = 1;
    for( var i = 0, j = x.length; i < j; i++) {};
    不要
    var x, y = 1;
  15. 大括号{前面需要加上空格。

    提倡
    if (condition) {
        foo();
    }
    不要
    if (condition){
        foo();
    }
  16. 在条件表达式(三元运算符)中, 必须按如下格式添加空格:

    提倡
    var x = a ? b : c;
    不要
    var x = a?b:c;
  17. 多行时将逗号写在末尾。

    提倡
    var x = {
        one: 1,
        two: 2,
        three: 3
    };
    不要
    var x = {
        one: 1
        ,two: 2
        ,three: 3
    };
  18. 二元运算符前面必须加上空格:

    提倡
    x != y;
    不要
    x!= y;
  19. 所有二元运算符前后都必须带空格。

    提倡
    x + y;
    不要
    x +y;
  20. 变量名提倡驼峰风格: camelCased or UPPERCASE_WITH_UNDERSCORES

    提倡
    var camelCase = 0;
    var CamelCase = 1;
    var _camelWithUnderscore = 2;
    var UPPER_CASE = 3;
    不要
    var lower_case = 0;
    var Mixed_case = 2;
    var mixed_Case = 3;
  21. 文件的末尾必须留一个空行:

  22. this 以外的构造函数必须首字母大写。

    提倡
    var x = new A();
    var y = new this();
    不要
    var x = new a();
  23. for 语句中的每个分号后面必须有空格。

    提倡
    for(var i = 0; i < len; i++) {
        x++;
    }
    不要
    for(var i = 0;i < len;i++) {
        x++;
    }
  24. 调用函数时,参数之间必须有空格。

    提倡
    foo(a, b);
    不要
    foo(a,b);
  25. 不允许单行条件判断,一律加上大括号{}

    • "do"
    提倡
    if (condition) {
        someThing();
    }
    不要
    if (condition) someThing();
  26. 以下关键字后面必须有空格:

    • "if"
    • "else"
    • "for"
    • "while"
    • "do"
    • "switch"
    • "case"
    • "return"
    • "try"
    • "catch"
    • "typeof"
    提倡
    if (x) {
        x++;
    }
    不要
    if(x) {
        x++;
    }
  27. 普通字符串用单引号,React组件属性用双引号。

    提倡
    var s = 'A String Value';
    不要
    var s = "A String Value";
  28. 采用2个空格缩进。

    提倡
    if (a) {
      b = c; \\ line is indented with 2 spaces
    }
    不要
    if (a) {
        b = c; \\ line is indented with 4 spaces
    }
  29. 单行最长不超过80个字符。