JavaScript 最佳实践
2016-04-27 18:08
363 查看
最佳实践
24.1 可维护性
24.1.1 什么是可维护性
可理解性直观性
可适应性
可扩展性
可调试性
24.1.2 代码约定
可读性注释,合理的缩进
有意义的变量和函数命名
一般命名规则:变量名应该为名词;函数名应该动词开始;
24.1.3 松散耦合
解耦html与JavaScript解耦css与JavaScript
解耦应用逻辑与事件处理程序
24.1.4 编程实践
尊重对象所有权(如果你不负责创建或者维护某个对象,那么就别对他们进行修改)避免全局变量
避免与null进行比较
使用常量(将数据从应用逻辑中分离出来,以方便修改与国际化)
24.2 性能
24.2.1 注意作用域
避免全局查找访问全局变量总是要比访问局部变量慢,因为需要遍历作用域链,所以将多次使用的全局变量存储于局部变量总是没错的。
避免with语句
24.2.2 选择正确的方法
避免不必要的属性查找使用变量和数组要比访问对象的属性更有效率,后者是一个O(n)的操作
优化循环
减值迭代
简化终止条件
简化循环体
使用后测试循环
展开循环
目标对象,大数据集–Duff装置。
避免双重解释–避免出现需要按照JavaScript来解释的字符串
24.2.4 最小化语句数
多个变量声明var count = 5;
var color = red;
var value = [1,2,3];
改为:
var count = 5,
color = red,
value = [1,2,3];
插入迭代值
var name = values[i];
i++;
改为:
var name = values[i++];
使用数组和对象字面量创建
24.2.4 优化DOM交互
最小化现场更新,使用文档碎片使用innerHTML
当把innerHTML设置为某个值时,后台会创建一个html解析器,然后使用内部的DOM调用来创建DOM结构;而非基于JavaScript的DOM调用。
使用事件代理
注意HTMLCollection
任何时候要访问HTMLCollection,都会在文档上进行一次查询,最小化访问HTMLCollection可以极大的改进性能。
发生以下情况时,会返回HTMLCollection;
进行了对getElementsByTagName()的调用
获取了元素的childNodes属性
获取的元素的attributes属性
访问了特殊的集合,如document.forms,document.images
相关文章推荐
- JavaScript 事件
- Javascript 函数表达式
- JavaScript面向对象的程序设计
- 2、JSP脚本
- js 与或运算符 || && 妙用
- js刷新页面方法大全
- JS 的trim()
- JavaScript 装逼指南
- JS原型、原型链
- 分享一个用DHTML写的一个js简易轮播图
- 关于iscroll5 click事件触发两次
- JavaScript基础学习(五)—其他引用类型
- JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
- Json-lib
- js列表滚动
- js强制类型转换
- js日期和时间戳互换
- 页面收藏js方法
- JSP学习笔记
- js随机生成姓名、手机号、身份证号、银行卡号【实现代码】