js优化原则

来源:互联网 发布:观测数据 英文 编辑:程序博客网 时间:2024/06/14 13:19

转载:http://www.iteye.com/topic/126859

概述:与其他语言不同,JS的效率很大程度是取决于JS engine的效率。除了引擎实现的优劣外,引擎自己也会为一些特殊的代码模式采取一些优化的策略。例如FF、Opera和Safari的JS引擎,都对字符串的拼接运算(+)做了特别优化。显然,要获得最大效率,就必须要了解引擎的脾气,尽量迎合引擎的口味。所以对于不同的引擎,所作的优化极有可能是背道而驰的。 

原则一、大规模循环体为最主要优化对象

原则二、尽量避免过多的引用层级和不必要的多次方法调用。(目前绝大多数JS引擎都是解释执行的,而解释执行的情况下,在所有操作中,函数调用的效率是较低的。此外,过深的prototype继承链或者多级引用也会降低效率。)

原则三、多次访问节点时,将其保存js变量。(有些情况下看似是属性访问,实际上是方法调用。例如所有DOM的属性,实际上都是方法。在遍历一个NodeList的时候,循环条件对于nodes.length的访问,看似属性读取,实际上是等价于函数调用的。)

原则四、尽量使用语言本身的构造和内建函数。(用户自定义函数的效率又远远低于语言内建函数,因为后者是对引擎本地方法的包装,而引擎通常是c,c++,java写的。进一步,同样的功能,语言内建构造的开销通常又比内建函数调用要效率高,因为前者在JS代码的parse阶段就可以确定和优化。 

原则五、尽量减少不必要的对象创建。

原创粉丝点击