首頁 > web前端 > js教程 > 主體

客戶端js效能優化小技巧整理_javascript技巧

WBOY
發布: 2016-05-16 17:17:27
原創
986 人瀏覽過

以下是一些關於客戶端JS效能的一些最佳化的小技巧:

1. 關於JS的循環,循環是一種常用的流程控制。 JS提供了三種迴圈:for(;;)、while()、for(in)。在這三種循環中 for(in)的效率最差,因為它需要查詢Hash鍵,因此應盡量少用for(in)循環,for(;;)、while()循環的性能基本持平。當然,建議使用for循環,如果循環變數遞增或遞減,不要單獨對循環變數賦值,而應該使用嵌套的 或--運算符。

2. 如果需要遍歷數組,應該先緩存數組長度var len=arr.length; for(i=0;i
3. 局部變數的存取速度要比全域變數的存取速度更快,因為全域變數其實是window物件的成員,而局部變數是放在函數的堆疊裡的。

4. 盡量少使用eval,每次使用eval需要消耗大量時間,特別是在迴圈內,json[i][變數]=1;這樣的語句可以不使用eval。

5. 盡量避免物件的巢狀查詢,對於obj1.obj2.obj3.obj4這個語句,需要進行至少3次查詢操作,先檢查obj1中是否包含obj2,再檢查obj2中是否包含obj3 ,然後檢查obj3是否包含obj4...這不是一個好策略。應該盡量利用局部變量,將obj4以局部變量 保存,從而避免嵌套查詢。

6. 使運算子時,盡量使用 =,-=、*=、=等運算符號,而不是直接進行賦值運算。

7. 當需要將數字轉換成字元時,採用以下方式:"" 1。從效能來看,將數字轉換成字元時,有以下公式:("" ) > String() > .toString() > new String()。 String()屬於內部函數,所以速度很快。而.toString()要查詢原型中的函數,所以速度遜色一些,new String()需要重新建立一個字串對象,速度最慢。

8. 當需要將浮點數轉換成整數時,應該使用Math.floor()或Math.round()。而不是使用parseInt(),該方法用於將字串轉換成數字。而且Math是內部對象,所以Math.floor()其實沒有太多查詢方法和呼叫時間,速度是最快的。

9.盡量作用JSON格式來建立對象,而不是var obj=new Object()方法。因為前者是直接複製,而後者需要呼叫構造器,因而前者的表現較好。

10.當需要使用陣列時,也盡量使用JSON格式的語法,即直接使用如下語法定義數組:[parrm,param,param...],而不是採用new Array(parrm,param ,param...)這種語法。因為使用JSON格式的語法是引擎直接解釋的。而後者則需要呼叫Array的構造器。

11. 將字串進行循環運算,例如取代、尋找,就使用正規表示式。因為JS的循環速度比較慢,而正規表示式的操作是用C寫成的API,效能比較好。

最後有一個基本原則,對於大的JS對象,因為創建時時間和空間的開銷都比較大,因此應該盡量考慮採用緩存。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板