看到這篇文章,先轉過來了 出自:http://ued.ctrip.com/blog/javascript-code-performance-optimization-summary.htmljavascript
如下代碼基本上在jQuery的源碼裏面均可以看到,若有說得不對的地方,請你們指出。html
javaScript是解釋性語言,相比編譯性語言執行速度要慢。瀏覽器已經實現的方法,就不要再去實現一遍了。另外,瀏覽器已經實現的方法在算法方面已經作了不少優化。java
在一個函數中會用到全局對象存儲爲局部變量來減小全局查找,由於訪問局部變量的速度要比訪問全局變量的速度更快些。正則表達式
少一層循環,就能提升數倍性能。若是要對一個數組的每一個元素進行屢次操做,儘量使用一次循環,屢次操做,而不是屢次循環,每次循環執行一次操做。尤爲是在進行多個正則匹配的時候,儘量合併正則表達式,在一次遍歷中儘量找到相應的匹配。算法
將條件分支,按可能性順序從高到低排列:能夠減小解釋器對條件的探測次數。數組
在同一條件 >2條件分支時,使用switch優於if:switch分支選擇的效率高於if,在IE下尤其明顯。4條分支的測試,IE下switch的執行時間約爲if的一半。瀏覽器
使用三目運算符替代條件分支。函數
若是針對的是不斷運行的代碼,不該該使用setTimeout,而應該是用setInterval,由於setTimeout每一次都會初始化一個定時器,而setInterval只會在開始的時候初始化一個定時器。性能
直接用true和false作標記,不要使用數字或者字符串的1和0來作標記。測試