一、迴圈
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]; }