开辟范例(四)JS范例

概述

为进步团队合作效力,范例文件治理,轻易项目后期保护,进步代码质量,特制订此文档,前端开辟人员必须遵循本范例举行前台页面开辟。

基础范例

sublime Text3请装置jshint插件以搜检JS编写毛病;
装置教程:运用lint举行语法及作风校验

异步加载文件定名

require.ensure([],function(){
    //异步加载内容
},'ensure/营业模块名_页面名_异步要领名_1')

引号
最外层一致运用单引号。

// not good
var x = "test";

// good
var y = 'foo',
    z = '<div id="test"></div>';

空行
以下几种状况须要空行:
变量声明后(当变量声明在代码块的末了一行时,则无需空行)
解释前(当解释在代码块的第一行时,则无需空行)
代码块后(在函数挪用、数组、对象中则无需空行)
文件末了保存一个空行

// need blank line after variable declaration
var x = 1;

// not need blank line when variable declaration is last expression in the current block
if (x >= 1) {
    var y = x + 1;
}

var a = 2;

// need blank line before line comment
a++;

function b() {
    // not need blank line when comment is first line of block
    return a;
}

// need blank line after blocks
for (var i = 0; i < 2; i++) {
    if (true) {
        return false;
    }

    continue;
}

var obj = {
    foo: function() {
        return 1;
    },

    bar: function() {
        return 2;
    }
};

// not need blank line when in argument list, array, object
func(
    2,
    function() {
        a++;
    },
    3
);

var foo = [
    2,
    function() {
        a++;
    },
    3
];


var foo = {
    a: 2,
    b: function() {
        a++;
    },
    c: 3
};

变量声明
一个函数作用域中一切的变量声明只管提到函数首部,用一个var声明,不允许涌现两个一连的var声明。

function doSomethingWithItems(items) {
    // use one var
    var value = 10,
        result = value + 10,
        i,
        len;

    for (i = 0, len = items.length; i < len; i++) {
        result += 10;
    }
}

函数

无论是函数声明照样函数表达式,'(‘前不要空格,但'{‘前肯定要有空格;
函数挪用括号前不须要空格;
马上实行函数外必须包一层括号;
不要给inline function定名;
参数之间用’, ‘分开,注重逗号后有一个空格

// no space before '(', but one space before'{'
var doSomething = function(item) {
    // do something
};

function doSomething(item) {
    // do something
}

// not good
doSomething (item);

// good
doSomething(item);

// requires parentheses around immediately invoked function expressions
(function() {
    return 1;
})();

// not good
[1, 2].forEach(function x() {
    ...
});

// good
[1, 2].forEach(function() {
    ...
});

// not good
var a = [1, 2, function a() {
    ...
}];

// good
var a = [1, 2, function() {
    ...
}];

// use ', ' between function parameters
var doSomething = function(a, b, c) {
    // do something
};

数组、对象

对象属性名不须要加引号;
对象以缩进的情势誊写,不要写在一行;
数组、对象末了不要有逗号。

// not good
var a = {
    'b': 1
};

var a = {b: 1};

var a = {
    b: 1,
    c: 2,
};

// good
var a = {
    b: 1,
    c: 2
};

变量定名范例

规范变量采纳驼峰式定名
ID在变量名中全大写
URL在变量名中全大写
Android在变量名中大写第一个字母
iOS在变量名中小写第一个,大写后两个字母
常量全大写,用下划线衔接
组织函数,大写第一个字母
jquery对象必须以$开首定名

var thisIsMyName;

var goodID;

var reportURL;

var AndroidVersion;

var iOSVersion;

var MAX_COUNT = 10;

function Person(name) {
    this.name = name;
}

// not good
var body = $('body');

// good
var $body = $('body');

前缀范例

s:示意字符串。比方:sName,sHtml;
n:示意数字。比方:nPage,nTotal;
b:示意逻辑。比方:bChecked,bHasLogin;
a:示意数组。比方:aList,aGroup;
r:示意正则表达式。比方:rDomain,rEmail;
f:示意函数。比方:fGetHtml,fInit;
o:示意以上未触及到的其他对象,比方:oButton,oDate;

例外状况:

1:作用域不大暂时变量能够简写,比方:str,num,bol,obj,fun,arr。
2:轮回变量能够简写,比方:i,j,k等。

函数定名范例

一致运用动词或许动词[+名词]情势,比方:fGetVersion(),fSubmitForm(),fInit();触及返回逻辑值的函数能够运用is,has等示意逻辑的词语替代动词。

如果有内部函数,运用__f+动词[+名词]情势,内部函数必须在函数末了定义。

对象要领完成
对象要领定名运用 f+对象类名+动词[+名词]情势;比方 fAddressGetEmail

事宜响应函数
某事宜响应函数定名体式格局为触发事宜对象名+事宜名或许模块名+触发事宜对象名+事宜名,比方:fDivClick(),fAddressSubmitButtonClick()

别的注重事项

  1. 一切定名最好运用英语示意。

  2. 一切变量名应当明白而必要,只管防止不必要的轻易殽杂的缩写。

  3. netease.events.mouse.Handler,而不是 netease.events.mouse.MouseEventHandler。

  4. 对应的要领应当运用对应的动词,比方:get/set, add/remove, create/destroy, start/stop, insert/delete, begin/end。

  5. 应当防止两重否认意义的变量,比方:bIsNotError, bIsNotFound,不可取。

  6. 变量应当在最小的范围内定义,并只管的坚持起码的运动时候。

  7. 轮回变量最幸亏轮回中定义。比方for(var i=0,m=10;i++)

  8. 只管防止庞杂的前提语句,能够运用暂时的boolean变量替代。

  9. 肯定要防止在前提中实行语句,比方:if((i=3)>2){},不可取。

  10. 不要在代码中重复运用雷同意义的数字,用一个变量替代

    原文作者:jeanChueng
    原文地址: https://segmentfault.com/a/1190000006131512
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞