最近在看性能優化的問題,看了關於js中條件判斷如何進行最大的性能優化的解決方法。
編寫js代碼過程中經常用到的性能優化,可以提高js的執行效率。
1.使用局部變量,盡量少用全局變量,因為全局變量是在作用域鏈中最后一個進行查找的,花費時間長。
var a = document.getElementId("a"); //document是一個全局變量有時候需要在一個js函數中重復使用到,故需要把它保存局部變量中,提高效率
var doc = document; var a = doc.getElementId("a");
2.循環遍歷js中的數組時,經常每次循環需要用到length,其為全局變量每次都要花費較長的時間去獲取,故要把它保存在局部變量中,提高效率
for(var i=0;var len = a.length; i < len;i ++) 效率遠遠大於 for(var i=0;i<a.length;i++)
3.編寫出高效率的js,需要注意合理管理作用域。冗長作用域鏈會降低執行效率,反之則可以提高效率
4.要善於流控制提高效率,如if-else, switch,數組判斷時。
圖1
如圖所示,上述的條件判斷,如果每次要獲取到result10,都要做多次判斷后才獲得,而其又是執行頻率最高的操作,此時上述的做法,明顯大大降低了效率。解決方法之一,將執行頻率高的條件判斷盡量往前靠
也可以將其進行分流控制:可以減少每次判斷的此時,以下的做法是的每次的判斷次數不超過4次
同樣的條件用switch的效率比用if-else的效率高
如果條件判斷很多的話最好的方式是將其存放到數組中,然后通過查詢數組返回結果,這種效率較高
總之,通過流控制來提高js的效率,最好的總結,如開頭所說的那樣。