doc

开发团队的相关文档

无论人数多少,代码都应该同出一门。

#JavaScript

编码风格 JSHint

  1. 在编辑器中,开启 JSHint
  2. 在项目根目录建立 .jshintrc 文件

相关阅读

jshint

##Indentation,分号,单行长度

Example

if (typeof qqfind === "undefined" ||
  typeof qqfind.cdnrejected === "undefined" ||
  qqfind.cdnrejected !== true) {
  url = "http://pub.idqqimg.com/qqfind/js/location4.js";
} else {
  url = "http://find.qq.com/js/location4.js";
}

##空行

##换行 换行的地方,行末必须有’,’或者运算符;

以下几种情况不需要换行:

##变量命名

var thisIsMyName;

var goodID;

var AndroidVersion;

var iOSVersion;

var MAX_COUNT = 10;

function Person(name) {
  this.name = name
}

##引号 最外层统一使用单引号。

// not good
var x = "test";

// good
var y = 'foo',
    z = '<div id="test"></div>';

##undefined使用场景

// Bad
var person;
console.log(person === undefined);    //true

// Good
console.log(typeof person);    // "undefined"

##对象声明

// Bad
var team = new Team();
team.title = "AlloyTeam";
team.count = 25;

// Good  semi colon 采用 符号后面接空格 的形式
var team = {
  title: 'AlloyTeam',
  count: 25
};

数组声明

Array Literals
// Bad
var colors = new Array("red", "green", "blue");
var numbers = new Array(1, 2, 3, 4);


// Good
var colors = [ "red", "green", "blue" ];
var numbers = [ 1, 2, 3, 4 ];

##括号对齐

##if else else前后留有空格

if (condition) {
  doSomething();
} else {
  doSomethingElse();
}

##switch

##for

var values = [ 1, 2, 3, 4, 5, 6, 7 ],
    i, len;

for (i=0, len=values.length; i<len; i++) {
    process(values[i]);
}



var prop;

for (prop in object) {

    // 注意这里一定要有 hasOwnProperty 的判断, 否则 JSLint 或者 JSHint 都会有一个 warn !
    if (object.hasOwnProperty(prop)) {
        console.log("Property name is " + prop);
        console.log("Property value is " + object[prop]);
    }
}

##变量声明 所有函数内变量声明放在函数内头部,只使用一个 var(多了JSLint报错), 一个变量一行, 在行末跟注释, 注释啊,注释啊,亲

function doSomethingWithItems(items) {

    var value = 10,    // 注释啊,注释啊,亲
        result = value + 10,    // 注释啊,注释啊
        i,    // 注释啊,注释啊,亲
        len;    // 注释啊,注释啊,亲

    for (i=0, len=items.length; i < len; i++) {
        doSomething(items[i]);
    }
}

###函数声明

function doSomething(item) {
    // do something
}

var doSomething = function (item) {
    // do something
}


// Good
doSomething(item);

// Bad: Looks like a block statement
doSomething (item);


// Good
var value = (function() {

    // function body
    return {
        message: "Hi"
    }
}());


// Good
(function() {
    "use strict";

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

})();

##数组、对象

##null 适用场景:

其他