做JavaScript也有段时间了,虽然技术还是很弱,对于如何优化JavaScript我把自己的经验和网上查找的一些资料总结一下,希望对各位朋友有帮助。废话不多说咱们开始:语法方面:循环 循环是很常用的一个控制结构,大部分东西要依靠它来完成,在JavaScript中,我们可以使用for(;;),while(),for(in) 三种循环,事实上,这三种循环中for(in)的效率极差,因为他需要查询散列键,只要可以就应该尽量少用。for(;;)和while循环的性能应该说基本(平时使用时)等价。 而事实上,如何使用这两个循环,则有很大讲究。我得出的结论是: 如果是循环变量递增或递减,不要单独对循环变量赋值,应该在它最后一次读取的时候使用嵌套的++或—操作符。 如果要与数组的长度作比较,应该事先把数组的length属性放入一个局部变量中,减少查询次数。 局部变量和全局变量 局部变量的速度要比全局变量的访问速度更快,因为全局变量其实是全局对象的成员,而局部变量是放在函数的栈当中的。还有,局部变量屏蔽全局变量。 最好少使用Eval 使用eval相当于在运行时再次调用解释引擎对内容进行运行,需要消耗大量时间。所以建议不使用。那在什么时候使用呢?比如AJAX返回是JS代码,你想让这段代码执行,那么此时你可以使用eval。 减少重复查找 因为JavaScript的解释性,所以a.b.c.d.e,需要进行至少4次查询操作,先检查a再检查a中的b,再检查b中的c,如此往下。所以如果这样的表达式重复出现,应该尽量少出现这样的表达式,可以利用局部变量,把它放入一个临时的地方进行查询。 这一点可以和循环结合起来,因为我们常常要根据字符串、数组的长度进行循环,而通常这个长度是不变的,比如每次查询a.length,就要额外进行一个操作,而预先把var len=a.length,则就少了一次查询......
此文章由 http://www.ositren.com 收集整理 ,地址为:
http://www.ositren.com/htmls/29842.html