A.1 缩进
// 4个空格的层级缩进if (true) { doSomething();}
A.2 行的长度
// 每行限于80个字符,超出则在运算符后换行,缩进2个层级(8个空格)doSomething(argument1, argument2, argument3, argument4, argument5);
A.3 原始值
// 字符串使用双引号及长字符串的链接var name = "Nicholas", longStr = "this is a long string you should " + "change another line.";// 数字var count = 10, PRice = 10.50, num = 1e10;// null,表示或期望是对象var person = null; function getPerson () { if (condition) { return new Person("Nicholas"); } else { return null; }}
// undefined 变量声明而未赋值的状态,避免使用;var variable = undefined // dont do thisif (typeof variable === "undefined") { // do like this}
A.4 运算符间距
// 运算符前后使用一个空格来保持表达式的整洁var found = (value[i] === item);if (found && (count > 10)) { doSomething();}for (i = 0; i < count; i++) { process(i);}
A.5 对象直接量
// 层级缩进、语段前后空行、函数前后空行、属性不加引号、冒号紧跟其后var object = { key1: value1, key2: value2, func: function () { // a function to do something }, key3: value3}
A.7 注释
// 单行注释1if (condition) { // 如果代码执行到这里,表明通过了安全检查 doSomething();}// 单行注释2var result = result1 + result2; // result1, result2应当是整数// 多行注释function getResult (arg1, arg2) { /* * @para arg1 * @para arg2 */ doSomething();}
A.8 变量声明
// 整齐、未初始化变量放最后var count = 10, name = "Nicholas", found = false, empty;
A.9 函数声明
// 标准式function sum(arg1, arg2) { return arg1 + arg2;}// 道格拉斯推荐式(变量引用式)var sum = function (arg1, arg2) { return arg1 + arg2;};// 立即调用式var value= (function() { // 函数体 return { message: "Hi" }; }());
A.10 命名
// 普通变量用小驼峰命名法,不要使用下划线,不要用动词开头var accountNumber = "8341";// 函数命名用动词开头表意function getPerson() { // return a person object}// 构造函数用名词开头且首字母大写function Person(name) { this.name = name;}// 常量var TOTAL_COUNT = 10;// 私有变量var object = { _count: 10, getCount: function() { return this._count; }};
A.11 严格相等及表达式赋值
// 通过相等判断赋予布尔值var flag = (a === b);
A.12 三元操作符
// 三元操作符应当仅仅用在条件赋值语句中var value = (condition ? value1 : value2);// dont do like this, do it use if insteadcondition ? doSomething() : doSomethingElse();
A.13 语句示例
// ifif (condition) { statements}// forvar i, len;for (i = 0, len = 10; i < len; i++) { // code}var prop;for (prop in object) { if (object.hasOwnProperty(prop)) { // code }}// whilewhile (condition) { statements}// switchswitch (value) { case 1: statements; break; case 2: // falls through case 3: statements; break; // no default}
A.14 使用严格模式吧,在一个函数里
(function() { "use strict"; // code}());
新闻热点
疑难解答