什么是可维护的代码:
- 可理解性
- 直观性
- 适应性
- 可扩展性
- 可调试性
可读性:
- 函数和方法——每个函数都要包含一个注释,描述其目的作用
松散耦合度
- 解耦HTML/javascript
- 解耦css/javascript
- 解耦应用逻辑/事件处理程序
- 创建命名空间
//创建全局对象var xhome={};//为xhome创建命名空间xhome.Projs = {};//讲方法写到项目中去xhome.Projs.EventUtil = {};xhome.Projs.CookieUtil ={};
- 避免与null比较
function sortArray(values){ if(values != null){//可以将条件语句改为values instanceof Array或者typeof values == "Array" values.sort(arry) }}
使用常量
- 重复值——任何在多出用到的值都应该抽取出作为一个常量
- url——经常会改变的字面量,所以要专门存放在一个地方,避免一个地方改变,而忘记修改其它地方
- 任意可能改变的值
- 避免使用全局查找
function setImgUrl(){ var img =doncument.getElementByTagName("img"); for(var i=0,len=img.length;i
- 避免使用with
- 避免不必要的属性查找
优化循环
- 简化循环体
- 使用后测试循环
//减值循环for(var i=0;i=0;i--){ process(vaules[i]);}
//后测试循环var len=values.length;do{ //...}while(i性能比较
- 原生方法比较快
- switch方法语句快
- 位运算符较快
- 使用数组和对象字面量
- dom操作在在循环体操作时,将dom在循环体外声明为变量
- 使用innerHTML
- 使用事件代理