JavaScript 编码风格指南

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 this
if (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  注释

//  单行注释1

if (condition) {

    

    //  如果代码执行到这里,表明通过了安全检查

    doSomething();

}



//  单行注释2

var 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 instead

condition ? doSomething() : doSomethingElse();

A.13  语句示例

// if

if (condition) {

    statements

}



// for

var i, len;

for (i = 0, len = 10; i < len; i++) {

    // code

}



var prop;

for (prop in object) {



    if (object.hasOwnProperty(prop)) {

        // code

    }

}



// while

while (condition) {

    statements

}



// switch

switch (value) {

    case 1:

        statements;

        break;



    case 2:  // falls through

    case 3:

        statements;

        break;



    // no default

}

A.14  使用严格模式吧,在一个函数里

(function() {

    "use strict";



    //  code

}());

 

 

你可能感兴趣的:(JavaScript)