提高js性能的方法

1、文档瘦身

(1)删除注释(版权及法律声明部分应保留),运行时不需要注释。

(2)删除制表符、空格和换行符,这些只是为了便于程序的维护,但是与执行无关。

(3)替换长的变量名为短的变量名。

(4)使用 0 和 1 替代 false 和 true ,对于 x!=true ,  可以使用 !x 代替。

(5)使用 [] 代替 new Array() , 使用{} 代替 new Object()。

(6)如果一次定义多个变量,尽量在同一行内定义。

可以使用工具来进行完成,比如: Microsoft Ajax Minifier 、 Yahoo YUI Compressor。

2、控制内存

(1)释放变量的引用。

(2)释放属性的引用。

(3)释放数组对象的引用。

3、优化代码

(1)如果函数体内语句较多,应避免从一个循环中多次调用一个函数。将函数分割成较小的函数,然后在循环中包含小函数的内容,可使效果更佳。

(2)尽可能使用内建函数,内建函数一般都是经过优化的,要比用户自定义函数运行速度更快。

(3)在开始循环前将 Array.length 赋予变量,将变量作为条件使用,而不是使用 Array.length 本身。

(4)也可以使用反转循环来优化执行,这样可以节省一个变量。

(5)注重优化循环及所有重复动作。解释引擎会花费许多时间来处理循环。

(6)在局部变量够用时,不要使用类属性或者全局变量。

(7)避免在循环体内申明变量,应该在循环体外声明。

(8)使用 try...catch...finally 语句时,要在 finally 语句中释放占用的自愿,否在在 catch 到错误后占用的资源不能释放。

(9)避免使用递归调用和嵌套循环,它们会严重影响性能,在不得不用的时候才使用。

(10)继承会增加方法调用的数量,而且会使用更多的内存,包括所需全部功能的类在运行时要比从超类继承某些功能的类更加有效。因此,用户可能需要在类的扩张性和代码有效性间做出一定的设计取舍。

(11)对于不需要立即运行的脚本,可以在 script 元素里面添加 defer 属性。

(12)避免使用 with 语句。

(13)setTimeOut() 和 setInterval()函数可以使用一个函数名或一个字符串作为首个参数。如果传递一个字符串,引擎将使用函数构造器创建一个新函数。

(14)函数缓存,即将函数或方法赋给一个变量是一个非常好的编程习惯。

原文地址:https://www.cnblogs.com/chengmingxiaowu/p/7792123.html