可以使用JSHint对代码进行检查。代码规范可以是使开发更高效。
基本的格式化
缩进层级
- 使用制表符进行缩进。
Tab
- 使用空格进行缩进。
语句结尾
是不是使用分号看个人喜好,书上推荐是不使用;但是jshint等工具,还有Google 的JavaScript风格指南推荐使用。
行的长度
单行长度限定在80个字符之内。
1. Java规定单行长度不超过80个字符;
2. Android不超过100个字符;
3. Ruby规定不超过80个字符;
4. Python不超过79个字符;
所以在JavaScript中,推荐单行长度限定在80个字符之内。
换行
这一段挺多的,我就写几个实例吧。
var tasks = [openDocument, writeText, closeDocument, updateUIcloseDocument,writeText,
updateUIcloseDocument, updateUI];
if (options & OPTION_D||tioDay===20|start!==1000&&
(window.t.s(num))) {
//do something
console.log(options);
}
空行
书上建议
- 在方法之间(我比较认同);
- 在方法中的局部变量和第一条语句之间。
- 在多行或单行注释之前;
- 在方法内的逻辑片段之间传入空行,提高可读性。
本人建议慎用空行
命名
小驼峰命名(大家都知道的)myName
变量和函数
函数名前应该是动词:getCount;单纯名词是变量:myName。
count、length、size尽量是数字;
name、title、message尽量是字符串;
以can、has、is尽量是布尔。
set开头尽量来保存一个值。
常量
大写字母和下划线来表示常量 var MAX_COUNT=10;
构造函数
使用大驼峰命名法。
function Person(name) {
this.name=name;
}
Person.prototype.myName=function () {
alert(this.name)
}
var me=new Person("Jack")
字符串和数字
字符串单引号和双引号看你自己的喜好,数字10进制,且如果有小数部分,请写全;不要10.
;.23
这种。
null
使用场景
- 用来初始化一个变量,这个变量可能赋值为一个对象。
- 用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象
- 当函数的参数期望是对象时,做参数使用;/**/
- 当函数的返回值期望是对象的时候。作返回值使用。
不要使用场景
- 不要使用null来检查是否传入了某个参数。
- 不要用null来检测一个未初始化的变量。
undefined
没有被初始化的变量都有一个初始值,即undefined;表示这个变量等待被赋值。
//b未被声明
var f;
console.log(typeof f);
console.log(typeof b);
建议此时将f赋值为null;然后typeof 运算null之后,返回“object”,这样可以和undefined区分了。
注释
单行注释
- 独占一行,用来解释下一行代码。这行注释之前总是有一个空行,且缩进层级和下一行代码保持一致。
- 在代码行的尾部注释,代码结束到注释之间至少有一个缩进。
多行注释
多行的时候,要加*,且有空格
文档注释
/**
@param :一个对象参数
@param :一个对象参数
**/
- 对方法、期望的参数和可能的返回值添加注释。
- 对自定义类型和期望的参数添加注释。
- 如果一个对象包含一个或多个附带文档注释的方法,那么这个对象也应当适当的针对文档生成工具添加文档注释。
语句和表达式
所有的块语句都应当使用花括号:
- if
- for
- while
- do…while
- try…catch…finally
for循环
注意break;和continue的使用。
for-in循环
最好使用hasOwnProperty();方法来为for-in循环过滤出实例属性。
var obj={value: 310, name: '邮件营销'};
var item;
for(item in obj){
if(obj.hasOwnProperty(item)){
console.log(item);
console.log(obj[item]);
}
}
变量、函数、运算符
变量声明
变量声明提前
function dos() {
var res=10+val;
var val=10;
return res;
}
此时由于变量声明提前;打印出来的是NaN
;其中的原因是浏览器自己理解为
function dos() {
var res;
var val;
res=10+val;
val=10;
return res;
}
建议尽量将变量声明放到最顶部。
函数声明
- 先声明函数,在使用函数。
- 函数声明不要在条件语句的内部。
严格模式避免放入到全局作用域中。
尽量使用====
和!==
而不是==和!=
;
eval();function();setInterval(); setTimeout()传入字符串来立即生成js代码去执行的,尽量避免使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)