JavaScript编码规范
一、前言
在开发中、代码规范是很有必要的,可增强代码的可读性,一眼就能看懂要表达的意思,规范就是符合规则,使代码有利于后期维护,也能很大程度的提高开发效率。一个正常的网站有很多 JS 代码,如果在编写的过程中,不遵循某种规则,那么写到后面自己都看不懂自己写的什么,这是很麻烦的一件事,特别是当随着需求的不断变更,需要维护项目的时候。当随着项目的代码量的提升,需要重构的时候。你会明白一个好的开发规范多么多么的重要。所以要在平时的练习、开发过程中,养成良好的编写代码的习惯。二、代码规范
代码规范通常包括以下几个方面:· 变量和函数的命名规则
· 空格,缩进,注释的使用规则。
· 其他常用规范…
规范的代码可以更易于阅读与维护。
代码规范一般在开发前规定,可以跟你的团队成员来协商设置。
三、基本要求
1. 编码方式统一用UTF-8. 现在开发项目基本都是用的UTF-8。2. 缩进统一为4个空格,将Tab size设置为4则可以保证tab键按4个空格缩进。
四、命名
命名的基本原则:· 尽可能的使用统一的命名规范;
· 不是用汉语拼音
· 除了常见的英文缩写,尽量少地使用缩写;
JS命名一般都采用匈牙利命名法或者驼峰命名法:
1、匈牙利命名法的原则:变量名=属性+类型+对象描述。他的关键是:以一个或多个小写字母作为前缀,前缀之后是一个或多个首字母大写的单词组合,该单词指明变量的用途。
提示: 匈牙利命名法是一位微软程序员(一位叫 Charles Simonyi 的匈牙利程序员,在微软呆了几年)发明的,多数的C,C++程序都使用此命名法(本篇不多介绍)。2、驼峰命名法的原则:由小(大)写字母开始,后续每个单词首字母都大写(推荐使用)。
按照第一个字母是否大写,分为:大驼峰命名 (UpperCamelCase) :每个单词的第一个字母都大写。
小驼峰命名 (lowerCamelCase) :除第一个单词以外,每一个单词的第一个字母大写。
1)、变量命名:
成员变量命名:小驼峰命名,如:
n firstName = "John";
n lastName = "Doe";
符:常用规范
s:表示字符串。例如:sName,sHtml;
n:表示数字。例如:nPage,nTotal;
b:表示逻辑。例如:bChecked,bHasLogin;
a:表示数组。例如:aList,aGroup;
r:表示正则表达式。例如:rDomain,rEmail;
f:表示函数。例如:fGetHtml,fInit;
o:表示以上未涉及到的其他对象,例如:oButton,oDate;
g:表示全局变量,例如:gUserName,gLoginTime;
l 常量命名:所有单词字母均大写、单词之间下划线连接;如:
n 网站的URL
n MAX_COUNT = 10
l 控件变量命名:小驼峰命名;
n 建议使用 控件缩写+逻辑名称 格式,例如 tvPostTitle、etUserName;
n 对应的控件的 id 的命名控件缩写_逻辑名称,单词均小写,用下划线连接,例如:tv_post_title、et_user_name;
l 函数命名:小驼峰命名;前缀应当为动词、可使用常见动词预定;如:
动词 | 含义 | 返回值 |
can | 判断是否可执行某个动作(权限) | 函数返回一个布尔值。true:可执行;false:不可执行 |
has | 判断是否含有某个值 | 函数返回一个布尔值。true:含有此值;false:不含有此值 |
is | 判断是否为某个值 | 函数返回一个布尔值。true:为某个值;false:不为某个值 |
get | 获取某个值 | 函数返回一个非布尔值 |
set | 设置某个值 | 无返回值、返回是否设置成功或者返回链式对象 |
load | 加载某些数据 | 无返回值或者返回是否加载完成的结果 |
n // 获取名称
function getName() {
return this.name;
}
l 资源命名:
n 图标资源以 ic 为前缀,例如 ic_chat ,指聊天图标;
n 背景图片以 bg 为前缀,例如 bg_login ,指的是登录页的背景图;
n 按钮图片以 btn 为前缀,例如 btn_login ,指的是登录按钮的图片,不过这只有一种状态,需要加上状态的可以在后面添加,例如 btn_login_pressed ,表示登录按钮按下的图片;
n 当使用 shape 和 selector 文件为背景或者按钮时,命名参照以上说明;
五、注释规范
JS支持两种不同类型的注释:单行注释和多行注释。
5.1单行注释
说明:单行注释以两个斜线开始,以行尾结束。
语法:// 这是单行注释
使用方式:
① 单独一行://(双斜线)与注释文字之间保留一个空格。
② 在代码后面添加注释://(双斜线)与代码之间保留一个空格,并且//(双斜线)与注释文字之间保留一个空格。
③ 注释代码://(双斜线)与代码之间保留一个空格。
示例:
// 调用了一个函数;1)单独在一行
setTitle();
var maxCount = 10; // 设置最大量;2)在代码后面注释
// setName(); // 3)注释代码
5.2、多行注释
说明:以/*开头,*/结尾
语法:/* 注释说明 */
使用方法:
① 若开始(/*)和结束(*/)都在一行,推荐采用单行注释。
② 若至少三行注释时,第一行为/*,最后行为*/,其他行以*开始,并且注释文字与*保留一个空格。
示例:
/*
* 代码执行到这里后会调用setTitle()函数
* setTitle():设置title的值
*/
setTitle();
5.3、函数注释
说明:函数(方法)注释也是多行注释的一种,但是包含了特殊的注释要求,参照 javadoc(百度百科)。
语法:
/**
* 函数说明
* @关键字
*/
注释名 | 语法 | 含义 | 示例 |
@param | @param 参数名 {参数类型} 描述信息 | 描述参数的信息 | @param name {String} 传入名称 |
@return | @return {返回类型} 描述信息 | 描述返回值的信息 | @return {Boolean} true:可执行;false:不可执行 |
@author | @author 作者信息 [附属信息:如邮箱、日期] | 描述此函数作者的信息 | @author 张三 2015/07/21 |
@version | @version XX.XX.XX | 描述此函数的版本号 | @version 1.0.3 |
@example | @example 示例代码 | 演示函数的使用 | @example setTitle('测试') |
常用注释关键字:(只列出一部分,并不是全部)
最近想学习js,先整理一片js的编码规范,先整这么一点,后期慢慢追更。。。,不足支出还望多指教。谢谢!!!
参考:
http://zywhunter.blog.163.com/blog/static/64659941201281434147628/
http://www.w2bc.com/article/216584
http://www.cnblogs.com/polk6/p/4660195.html
The end!