是否能成一名优秀前端攻城师,编码的质量是必须的。同时,不论是软件,还是web,它们的长期价值直接源自于其编码的质量,在它的生命周期里,它会被多人阅读和修改,为了能让程序可以清晰、自然的展现出它的结构和特征,规范的编程可以帮助我们更好的体现它健壮和提供完成的效率。
一、基本规范
Javascript文件
javascript 代码应该独立保存在后缀名为.js的文件中。
同时,javascript代码尽量不被包涵在HTML中,除非这是段特定只属于此部分的代码。
.js文件尽量放在body后面,这样可以减少因载入js文件造成其它页面内容载入被延迟的问题。
缩进
尽量使用4个空格,避免使用tab,在21世纪tab的长度是不一的。
行长度
每行尽量控制在80个字符内。当一条语句一行写不下时,请考虑折行。在运算符号,最好是逗号后换行。在运算符后换行可以减少因为复制粘贴产生的错误被分号掩盖的几率。下一行应该缩进8个空格。
注释
请尽量使用英文注释,同时注释一定要有意义。
声明
所有的变量尽量在使用前声明,否则就成了全局变量。
所有的函数在使用前进行声明。
内函数的声明跟在var语句的后面。这样可以帮助判断哪些变量是在函数范围内的。
函数名与((左括号)之间不应该有空格。)(右括号)与 开始程序体的{(左大括号)之间应插入一个空格。函数程序体应缩进四个空格。}(右大括号)与声明函数的那一行代码头部对齐。
function outer(c, d) {
var e = c * d;
function inner(a, b) {
return (e * a) + b;
}
return inner(0, 1);
}
如果函数是匿名函数,则在function和((左括号)之间应有一个空格。如果省略了空格,否则会让人感觉函数名叫作 function。
div.onclick = function (e) {
return false;
};
that = {method: function () {return this.datum; },datum: 0};
尽量不使用全局函数。
命名
变量类型:
o — 本地对象 var oObj = new Object;
h — 宿主对象 var hInput = document.createEelment();
n — 数字 var nLoop = 10;
s — 字符串 var sHead = “http://”;
a — 数组 var aList = new Array;
b — 布尔 var bDo = 0;
fp — 函数指针 var fpSetxx = function(){}
v — 变体参数,可为多种类型,可以用在声明不定参数时
1.静态变量名 = 类型名(小写) + 用户命名(大写) var nPI = 3.14;
2.类接口变量 = 类型名 + 用户命名
3.类私有变量 = _ + 类型名 + 用户命名 _hMenuBar = document.getElementById();
4.局部变量 = 类型名 + 用户命名
5.函数参数 = 类型名 + 用户命名
语句
每一行最多只包含一条语句。把;(分号)放到每条简单语句的结尾处。注意一个函数赋值或对象赋值语句也是赋值语句,应该以分号结尾。
JavaScript可以把任何表达式当作一条语句。这很容易隐藏一些错误,特别是误加分号的错误。只有在赋值和调用时,表达式才应被当作一条单独的语句。
空白
用空行来将逻辑相关的代码块分割开可以提高程序的可读性。
空格应在以下情况时使用:
跟在((左括号)后面的关键字应被一个空格隔开。
while (true) {}
{}< 和[]
使用{}代替new Object()。使用[]代替new Array()。
当成员名是一组有序的数字时使用数组来保存数据。当成员名是无规律的字符串或其他时使用对象来保存数据。
赋值表达式
避免在if和while语句的条件部分进行赋值。
===和==操作符。
使用===和==操作符会相对好点。==和!=操作符会进行类型强制转换。
令人迷惑的加号和减号
小心在+后紧跟+或++。这种形式很容易仍人迷惑。应插入括号以便于理解。
total = subtotal + +myInput.value;
最好能写成
total = subtotal + (+myInput.value);
这样+ +不会被误认为是++。
eval
eval是JavaScript中最容易被滥用的方法。避免使用它。
eval有别名。不要使用Function构造器。不要给setTimeout或者setInterval传递字符串参数。
二、性能规范
1.变量名在有意义的情况下尽可能的短
2.循环里的引用级别尽可能的低
3.循环里尽量不创建变量