JS可维护性代码
最近在看一本Js的书名叫“Javascript高级程序设计”在里面学到了很多东西,是一本不错的书,非常值得一看。
解耦css/javascript
element.style.color="red";
element.style.backgroundColor="blue";
以上方式css和javascript的太过于紧密;我们应写成:
element.className="edit";
css样式和js代码完全分离。
再次优化:
var cssName={
css1:"edit",
}
element.className=cssName.css1;
2.解耦应用逻辑/事件处理程序
function handlekeyPress(event){
event=EventUtil.getEvent(event);
if(event.keyCode==13){
var target=EventUtil.getTarget(event);
var value=5*parentInt(target.value);
if(value>10){
document.getElement("error-msg").style.display="block";
}
}
};
写成:
function validateValue(value){
value=5*parseInt(value);
if(value>10){
document.getElement("error-msg").style.display="block";
}
};
function handleKeyPress(event){
event=EventUtil.getEvent(event);
if(event.keyCode==13){
var target=EventUtil.getTarget(event);
}
};
3.避免全局量:
var name="Ncihoals"
function sayName(){
}
写成:
var MyApplication={
name:"Nicholas",
sayName:function(){
}
}
Js命名空间的概念:
//创建全局对象
var Wrox={};
//创建命名空间:
Wrox.ProJs={};
将所用的变量的都附加到Wrox上
Wrox.ProJs.EventUtil={};
这样做的最主要目的是为了在同一页面中能与其它的js文件共存,不会出现重名的情况。
3.避免与null进行比较:
function sortArry(values){
if(values!=null){ //避免
values.sort(comparator);
}
}
function sortArry(values){
if(values instanceof Arry){ //推荐
values.sort(comparator);
}
}
最新文章
- How to Delete XML Publisher Data Definition Template
- 【续集】塞翁失马,焉知非福:由 Styles.Render 所引发 runAllManagedModulesForAllRequests=";true"; 的思考
- bzoj4199:NOI2015D2T2品酒大会(SAM版)
- Mysql的一些使用
- 做NavMesh相关工作时收集的一些文章
- 命令行方式使用abator.jar生成ibatis相关代码和sql语句xml文件
- C,C#,C++中&;&;和||,&;和|的联系和区别
- 接近带给你AngularJS - 经验说明示例
- JS 数组array方法push, pop, unshift, shift, slice,splice,contact, join, sort
- 【Loadrunner】初学Loadrunner——IP欺骗
- Servlet程序开发--WEB开发模式(Mode I, Mode II)
- Java 9 揭秘(12. Process API 更新)
- 闲话和grunt
- 学习笔记TF064:TensorFlow Kubernetes
- 防止SQL注入的6个要点
- ds.Tables[0].Rows.RemoveAt(i)数据库表格删除行
- mysql自学路线
- windows 7/mac编译cocos2d-x-3.2*的android工程报错
- C# 6.0可能的新特性及C#发展历程[转]
- 牛客网 Wannafly挑战赛27 蓝魔法师