优化javascript:
1. 循环:
循环我们使用:for(;;),while(),for(in)三种。for(in)的效率比较差,应减少使用。
如果是循环变量递增或递减,应该使用for(vari=arr.length;i>0;i++){}这种形式,即在它最后一次读取的时候使用++或—的字符串,而不要单独对循环变量赋值。
如果多次要与数组的长度比较,应该事先把数组的length属性放入一个局部变量中,减少查询次数,如:for(var i=0,len=arr.length;i>0;i++){…}或for(var i=arr.length;i>0;i--){}这种形式,这样可以减少arr.length的查询次数。
2.局部变量和全局变量:
局部变量的速度要比全局变量快,根据情况多定义局部变量。
3.不使用eval
eval相当于在运行时再次调用解析引擎对内容进行运行,需要消耗大量时间。这时应使用javascript所支持的闭包。
4.较少对象查询次数
如循环中提到的多次与数组长度比较的问题
5.追加字符串应该使用+=
追加字符串:s+=anotherStr,不要使用s=s+anotherStr
连接字符串:s+=a+b+c
6.使用正则表达式
如对字符串执行替换,查找等应使用正则表达式,因为正则表达式是编写好的API,执行效率高。
7.定时器应使用setInterval(,)
如果针对的是不断运行的代码,应使用setInterval(,),而不是使用setTimeout(,)
8.数字转换为字符串
把数字转换为字符串,应该用” ”+1,虽然丑一点,但是执行效率高