一、循环
for、while、do while三种循环的性能都没有多大区别。foreach 的性能较其他三种差 。
既然循环没有多大区别,注意循环内的代码控制。
减少迭代次数。
减少迭代工作量。
推荐写法:
for(int i=0, l = array.length; i < l; i++) { int v = array[i]; };
二、条件语句
if else 和 switch语句较少时,if else较易读。分支多时,从性能或易读上都倾向于switch。
优化条件语句:
最小化到达正确分支前的条件数量;
把多个if else 组合成一个;
把多个if else 组合成一个系列嵌套的组合;
将查找值存放到查找表或数组,减少查找次数。
三、递归
使用Memoization缓存前一个计算结果供后面计算使用。
使用Memoization重写 factorial()函数,代码如下:
funtion memfactorial(n) { if(!memfactorial.cache) { memfactorial.cache={ "0":1, "1":1 }; } if(!memfactorial.cache.hasOwnProperty(n)) { memfactorial.cache[n]= n* memfactorial.cache[n-1]; } return memfactorial.cache[n]; }
时间: 2024-10-29 19:06:28