JavaScript代碼性能優化總結【轉】

看到這篇文章,先轉過來了 出自:http://ued.ctrip.com/blog/javascript-code-performance-optimization-summary.htmljavascript

如下代碼基本上在jQuery的源碼裏面均可以看到,若有說得不對的地方,請你們指出。html

儘可能使用源生方法

javaScript是解釋性語言,相比編譯性語言執行速度要慢。瀏覽器已經實現的方法,就不要再去實現一遍了。另外,瀏覽器已經實現的方法在算法方面已經作了不少優化。java

避免全局查找

在一個函數中會用到全局對象存儲爲局部變量來減小全局查找,由於訪問局部變量的速度要比訪問全局變量的速度更快些。正則表達式

避免全局查找

儘可能減小循環次數

少一層循環,就能提升數倍性能。若是要對一個數組的每一個元素進行屢次操做,儘量使用一次循環,屢次操做,而不是屢次循環,每次循環執行一次操做。尤爲是在進行多個正則匹配的時候,儘量合併正則表達式,在一次遍歷中儘量找到相應的匹配。算法

循環

循環

switch

switch

條件分支

將條件分支,按可能性順序從高到低排列:能夠減小解釋器對條件的探測次數。數組

在同一條件 >2條件分支時,使用switch優於if:switch分支選擇的效率高於if,在IE下尤其明顯。4條分支的測試,IE下switch的執行時間約爲if的一半。瀏覽器

使用三目運算符替代條件分支。函數

條件分支

定時器

若是針對的是不斷運行的代碼,不該該使用setTimeout,而應該是用setInterval,由於setTimeout每一次都會初始化一個定時器,而setInterval只會在開始的時候初始化一個定時器。定時器性能

建立對象的另一個辦法-不使用new

建立對象

用作標記的變量儘量使用布爾類型

直接用true和false作標記,不要使用數字或者字符串的1和0來作標記。測試

相關文章
相關標籤/搜索