开发团队的相关文档
无论人数多少,代码都应该同出一门。
#JavaScript
##Indentation,分号,单行长度
origin/master
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";
}
##空行
##换行 换行的地方,行末必须有’,’或者运算符;
以下几种情况不需要换行:
代码块’{‘前 以下几种情况需要换行:
##变量命名
ceseCameluserIDNAMES_LIKE_THISvar 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
switch (condition) {
case "first":
// code
break;
case "third":
// code
break;
default:
// code
}
##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 适用场景:
作为一个返回对象的函数的返回值 不适用场景: