javascript编程规范

稿件来源: 互联网   撰稿作者: 太阳光   发表日期: 2015-6-24   阅读次数: 0   查看权限: 游客查看

javascript编程规范

一、编程风格

1. 行末逗号对行首逗号

//Good: 行末引号
var foo = 1,
    bar = 2,
    baz = 3;

var obj = {
    foo: 1,
    bar: 2,
    baz: 3
};

//Bad: 行首引号
var foo = 1
  , bar = 2
  , baz = 3;

var obj = {
    foo: 1
  , bar: 2
  , baz: 3
};

2. 缩进使用空格和Tab

请将IDE或文本编辑器的缩进设置为4个空格

使用空格缩进可以保证不同的开发者、不同的编辑器设置下看到的结果是一样的。

3. 函数后是否添加空格

//Good: 无空格

function foo() {
  return "bar";
}

//Bad: 有空格
function foo () {
  return "bar";
}

4. 参数与括号间是否有空格

//Good: 无空格

function fn(arg1, arg2) {
  //  ...
}
if (true) {
  //  ...
}

//Bad: 有空格
function fn( arg1, arg2 ) {
   // ...
}
if ( true ) {
   // ...
}

5. 对象字面量中冒号周围是否有空格

//Good: 冒号后有空格

{
  foo: 1,
  bar: 2,
  baz: 3
}

//Bad: 冒号后无空格
{
  foo:1,
  bar:2,
  baz:3
}
//Bad: 冒号前后均有空格
{
  foo : 1,
  bar : 2,
  baz : 3
}

6. 条件语句关键词与条件之间是否有空格

// Good: 有空格
if (true) {
  //...
}
while (true) {
  //...
}
switch (v) {
  //...
}

//Bad: 无空格
if(true) {
  //...
}
while(true) {
  //...
}
switch(v) {
  //...
}

7. 单引号、双引号

//Good: 单引号
var str = 'test';
var el = $('.el');
if (a === 'b'){
}


//Bad: 双引号
var str = "test";
var el = $(".el");
if (a === "b"){
}

小结

  1. 行末逗号
  2. 空格缩进
  3. 函数名称后无空格
  4. 函数参数与括号间无空格
  5. 对象字面量的冒号后加空格,冒号前不加
  6. 条件语句关键字后加空格

二、命名规范

1. 基本原则

  1. 尽量避免潜在冲突,见名知意;
  2. 如非无法避免,不能随意定义全局的变量;
  3. 请将闭包内用到的外部变量挂载在全局的对象下,即命名空间下。

2. 命名通则

常量全部大写,单词以下划线分隔

//Good
var STATIC_PATH = 'http://pcs.shenba.com/_src';
var SB_DOMAIN = 'www.shenba.com';

//Bad
var staticPath = 'http://pcs.shenba.com/_src';
var sb_domain = 'www.shenba.com';

####类名首字母大写

//Good
var ClassA = function(){};
var ClassB = function(){};
//Bad
var classA = function(){}
var classB = function(){}

普通变量、方法和函数,采用驮峰式写法,首字母小写

//Good
var userName = $('#user_name');
var msgCode = $('#msg_code');

//Bad
var username = $('#user_name');
var msgcode = $('#msg_code');

//Bad
var user_name = $('#user_name');
var msg_code = $('#msg_code');

局部变量、私有变量、 私有属性和私有方法,名字以下划线开头

var ClassFrom = function(){
  var _from = $('.reg-from');
  this.getUserName = function(){
    var _userName = _from.find('#user_name');
    return _userName;
  };
  this.getCode = function(){
    var _code = _from.find('#check_code');
    return _code;
  };
  //more code...
};
var newFrom = new ClassFrom();
var code = newFrom.getCode();

条件表达式、正则表式式,如果很复杂,给其命名

//Good
_stream = function(files, cb, cb2) {
  var _amdReg = /;?\s*define\s*\(([^(]*),?\s*?function\s*\([^\)]*\)/;
  var _depArrReg = /^[^\[]*(\[[^\]\[]*\]).*$/;
  //code...
  _source = _source.replace(_amdReg, function(str, map) {
    _depStr = map.replace(_depArrReg, "$1")
    //code...
  )}
};

//Bad
_stream = function(files, cb, cb2) {
  //code...
  _source = _source.replace(/;?\s*define\s*\(([^(]*),?\s*?function\s*\([^\)]*\)/, function(str, map) {
    _depStr = map.replace(/^[^\[]*(\[[^\]\[]*\]).*$/, "$1")
    //code...
  )}
};

 

关键词: javascript,编程规则   编辑时间: 2015-6-24 18:08:34

  • 感到高兴

    0

    高兴
  • 感到支持

    0

    支持
  • 感到搞笑

    0

    搞笑
  • 感到不解

    0

    不解
  • 感到谎言

    0

    谎言
  • 感到枪稿

    0

    枪稿
  • 感到震惊

    0

    震惊
  • 感到无奈

    0

    无奈
  • 感到无聊

    0

    无聊
  • 感到反对

    0

    反对
  • 感到愤怒

    0

    愤怒
0%(0)
0%(0)
上一篇:JSONjs源码
下一篇:jquery-outside-events
共有0 条评论 发言请遵守【相关规定

网友评论

会员头像
发 表同步腾讯微博  匿名评论  验证码:  点击更新
  • 暂无评论
关闭模块文章图片 article Pictrue
  • 代码覆盖率工具 Istanbul 入门教程
  • 全栈工程师的武器——MEAN
  • 9款超炫的 CSS3 复选框(Checkbox)
  • 微信开发在线翻译功能
  • CSS3那些不为人知的高级属性
  • 给easyui的datebox添加清空事件
  • flash写字效果
  • kendoUI系列教程之DropDownList下拉菜单
  • kendoUI系列教程之datetimepicker日期时间选择
  • kendoUI系列教程之datepicker日期选择
  • kendoUI系列教程之combobox下拉列表框
  • kendoUI系列教程之colorpicker
  • kendoUI系列教程之calendar日历表
  • kendoUI系列教程之autocomplete自动补齐
  • kendo ui简介
  • QQ登录网站实战教程