淺談JavaScript代碼性能優化2

一.減小判斷層級數組

從下圖代碼中能夠明顯看出,一樣的效果判斷層級的減小能夠優化性能緩存

二.減小做用域鏈查找層級函數

簡單解釋下,下圖中第一個運行foo函數,bar函數內打印name,bar做用域內沒有name,因此做用域鏈往上查找,foo內部有name,性能

可是這種寫法其實是賦值,還要往上查找,全局做用域中查詢到name,相比於下圖第二個,多向上查了一級,因此時間要長一些。優化

(備註:不考慮內存空間消耗的前提下,具體根據產品來定。)3d

三.減小數據讀取次數對象

簡單解釋下,對於屢次頻繁調用,好比數組,對象是比較慢的,由於按照引用關係先要找到堆內存中的位置,因此說減小時間的消耗,blog

就應該減小查找成員的次數,好比放到一個變量中緩存起來(備註:不考慮內存空間消耗的前提下,具體根據產品來定。)內存

四.字面量與構造式作用域

簡單解釋下,下圖中第一個new Object() 至關於調用函數,比較慢,而下圖第二個至關於在堆區開闢空間,在裏面放屬性和值就可

以了.

再次舉例說明,下圖中第一個建立的僅僅是個字面量字符串,而第二個至關於建立了個字符串對象。

五.循環優化

簡單解釋下:下圖二中把一個頻繁使用到的值作了一個緩存,提高了執行效率。

以下圖所示:在不考慮順序的前提下,while循環遞減比for循環,執行效率更高一些

六.減小聲明及語句數

簡答解釋下:對於不頻繁使用的數據,不建議先緩存,執行的時候再去獲取,下降執行時對內存的消耗在運行以前有編譯過程,表達式

量比較多,對單詞要進行詞法拆分變成詞法單元,而後作語法分析,而後轉成代碼再去執行,時間消耗浪費在這裏了.

減小聲明變量解釋也如上

相關文章
相關標籤/搜索