js 书写规范

        在开发稍微大一点的项目时,每次都会纠结应该采用怎么样的书写风格,变量命名是采用camel 风格呢,还是下划线?变量、函数、类的命名规格一样吗? 所以,这里,我想记录一下js的开发规范,避免自己纠结,也为以后能在推广风格的时候,做下积累。

1 缩进

    采用4空格的方式,避免用tab

2 行的长度

   避免大于100个字符的行

   当一个expression 在一行中写不下时,他需要使用换行。在运算符后面换行

   如果字符串太长,将它折成多行

  下一行将比上一行多一个缩进

3  注释

     多写注释,有助于代码读者理解代码

    注释一定要有含义,重点放在不能明显看出来功能的地方,别要用没有意义的注释浪费读者的时间

4 变量声明

   所有变量在使用时,一定要先声明

   所有在函数中药用到的变量,在函数头部声明

   不要书写隐示的全局变量,全局变量用应该如下方式书写:window.varname;

5 函数声明

    使用函数前,一定要先声明定义函数,函数内的函数,应该用 var *** 来声明

    在函数名和( 之间不能有空格,在)和{ 之间,应该有一个空格。

   

function outer(c, d) {
        var e = c * d;

        function inner(a, b) {
            return (e * a) + b;
        }

        return inner(0, 1);
}

    对于匿名函数,在function 关键字和(字符间,应该有一个空格

   

div.onclick = function (e) {   
   return false;   
 };
    当函数要立即执行时,整个函数应该放在()中。这样可以非常明显的告诉读者参数的返回值是函数的返回值,而非函数本身

var collection = (function () {
    var keys = [], values = [];

    return {
        get: function (key) {
            var at = keys.indexOf(key);
            if (at >= 0) {
                return values[at];
            }
        },
        set: function (key, value) {
            var at = keys.indexOf(key);
            if (at < 0) {
                at = keys.length;
            }
            keys[at] = key;
            values[at] = value;
        },
        remove: function (key) {
            var at = keys.indexOf(key);
            if (at >= 0) {
                keys.splice(at, 1);
                values.splice(at, 1);
            }
        }
    };
}());


6 命名
   构成名字的字符有(A..Z,a .. z) ,10个数据(0..9)和下划线_。

   不用用_作为第一个字符。某些场合下,_开头表示私用,但是实际上他不具有私有能力,所以不建议使用

   大多数变量和函数应该以小写字母开头

var encodeHtml;

   构造函数应该以大写字母开头

var animation = new __.Anim();
   全局变量应该使用全大写字母的方式

Var GLOBAL = null;


7 声明

  1行最多一个声明

   在每一个声明后面加一个;好

8 多行声明

   多行声明是指用{}包围的声明

   { 应该在多行声明的开头

   }应该重启一行,并对齐

   即使是1行的多行声明,也应该用{}

9 各种关键字的声明形式

if 声明,应该采用下面的方式

if (condition) {
        statements
    }
    
    if (condition) {
        statements
    } else {
        statements
    }
    
    if (condition) {
        statements
    } else if (condition) {
        statements
    } else {
        statements
    }
for 

for (initialization; condition; update) {
        statements
    }

for (variable in object) {
    if (filter) {
        statements
    } 
}

 while 声明

while (condition) {
        statements
}


do  Statement
do {
        statements
} while (condition);


switch 

    switch (expression) {
    case expression:
        statements
    default:
        statements
    }
Each  case  is aligned with the  switch . This avoids over-indentation.

Each group of statements (except the default) should end with breakreturn, or throw. Do not fall through.

try 

try {
        statements
    } catch (variable) {
        statements
    }

    try {
        statements
    } catch (variable) {
        statements
   } finally {
        statements
    }

11 空白

    空白行将不同逻辑区域分开,提高了代码的可读性

    空白字符应该在下面的场景中使用:

        关键字和紧跟着他的(之间,应该用一个空白

              while (true) {
        空白字符不应该在函数名和紧跟着它的(之间。这样有助于区分关键字和函数

        所有的操作符应该同操作数之间用一个空格(除.([外)

        在for 声明中 ,每一个;分号后面应该紧跟一个空格

        在每一个逗号后面,应该紧跟一个空格


12 尽量使用=== 和!== ,而不是== ,!=


13 避免中条件语句中进行赋值操作

if(a=b){

你的意图是将b 的值赋给a,还是

if(a===b){

如果是赋值,一定要写注释。不过,不建议这样使用


参考:

http://javascript.crockford.com/code.html

http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值