麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

編寫高性能Javascript代碼的N條建議

2024-05-06 16:24:37
字體:
來源:轉載
供稿:網友

JavaScript代碼在web應用程序中經常用到,但是很多開發者忽視了一些性能方面的知識,如何編寫高性能javascript代碼呢?接下來,小編跟大家一起學習

多年來,Javascript一直在web應用開發中占據重要的地位,但是很多開發者往往忽視一些性能方面的知識,特別是隨著計算機硬件的不斷升級,開發者越發覺得Javascript性能優化的好不好對網頁的執行效率影響不明顯。但在某些情況下,不優化的Javascript代碼必然會影響用戶的體驗。因此,即使在當前硬件性能已經大大提升的時代,在編寫Javascript代碼時,若能遵循Javascript規范和注意一些性能方面的知識,對于提升代碼的可維護性和優化性能將大有好處。

下面給出編寫高性能的Javascript代碼的若干建議:

1、盡量不要用for-in 循環去訪問數組,建議用 for 循環進行循環:

 

 
  1. function foo() { 
  2. var i, b, c=[,,]; 
  3. for (i in c) { 
  4. b = c[i]; 
  5. if(b === ""
  6. return b; 
  7. //性能更好 
  8. function foo() { 
  9. var i, b, c=[,,]; 
  10. for (i=;i<c.length;i++) { 
  11. b = c[i]; 
  12. if(b === ""
  13. return b; 
  14. }  

2、建議將對象進行緩存處理,特別是DOM訪問是比較消耗資源的:

 

 
  1. //c.length沒有緩存,每次迭代都要計算一下數組的長度 
  2. function foo() { 
  3. var i, b, c=[,,]; 
  4. for (i=;i<c.length;i++) { 
  5. b = c[i]; 
  6. if(b === ""
  7. return b; 
  8. //性能更好,第一次將數組的長度緩存到變量l中,第二次及后續的循環無需計算數組長度 
  9. function foo() { 
  10. var i, b, c=[,,],l; 
  11. for (i=,l=c.length;i<l;i++) { 
  12. b = c[i]; 
  13. if(b === ""
  14. return b; 
  15.  
  16. //document.getElementById('info')沒有緩存,每次都要遍歷DOM 
  17. function foo() { 
  18. var e; 
  19. document.getElementById('info').innerHTML="call "
  20. document.getElementById('info').innerHTML="call "
  21.  
  22. //性能更好,第二次無需訪問DOM 
  23. function foo() { 
  24. var e=document.getElementById('info'); 
  25. e.innerHTML="call "
  26. e.innerHTML="call "

3、建議不要在函數內進行過深的嵌套判斷:

 

 
  1. //函數內嵌套判斷語句過多 
  2. function foo1() { 
  3. var r={}; 
  4. r.data={}; 
  5. r.data.myProp=2; 
  6. if (r) { 
  7. if (r.data) { 
  8. if (r.data.myProp) { 
  9. //邏輯處理 
  10. }  
  11. else { 
  12. //邏輯處理 
  13. //性能更好 
  14. function foo2() { 
  15. var r={}; 
  16. r.data={}; 
  17. r.data.myProp=2; 
  18. if (!r) return
  19. if (!r.data) return;  
  20. if (r.data.myProp) { 
  21. //邏輯處理 
  22. else { 
  23. //邏輯處理 

4、避免循環引用,防止內存泄漏:

 

 
  1. //需要jQuery 
  2. function foo(e,d) { 
  3. $(e).on("click"function() { 
  4. //對d進行邏輯處理 
  5. cbk(d); 
  6. }  
  7. }); 
  8. //打破循環! 
  9. function foo(e, d) { 
  10. $(e).on("click", cbk(d)); 
  11. function cbk (d) { 
  12. //邏輯處理 

5、建議避免在函數內返回一個未聲明的變量,會污染外部變量:

 

 
  1. function foo(a, b) { 
  2. r = a + b; 
  3. return r; //r未聲明,則創建了一個全局變量 

6、var聲明變量,建議寫在多行

 

 
  1. //自己測試結果是foo快,但也有一種觀點是foo快 
  2. function foo() { 
  3. var c = ; 
  4. var sum=; 
  5. var d = ; 
  6. var e; 
  7. function foo() { 
  8. var c = ,sum=, d = , e; 

說明:其實單個函數時間上差別較小,這里采用循環多次用累計時間進行性能對比,不同PC配置或者瀏覽器測試結果可能存在差異。

以上內容是編寫高性能Javascript代碼的N條建議,希望對大家有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 轻点插视频 | 美女性感毛片 | 91看片在线观看视频 | www.精品视频 | 免费看性xxx高清视频自由 | 在线观看免费污视频 | 99在线啪 | 中文字幕欧美专区 | 亚洲一区在线国产 | 玩偶姐姐在线观看免费 | 女人裸体让男人桶全过程 | 国产精品久久久久久久久久东京 | 免费观看黄色片视频 | av在线成人| 涩涩屋av | xxxⅹ96日本护士hd | 国产成人综合在线观看 | 99影视电影电视剧在线播放 | 国产精品视频海角社区88 | 欧美成人性色 | 成人免费网视频 | 99国产精品国产免费观看 | 青青草国产在线视频 | 性爱视频免费 | 校花被肉干高h潮不断 | 国产在线看一区 | 在线播放一级片 | 久久久久免费精品国产小说色大师 | 98国内自拍在线视频 | 中文字幕在线视频网站 | 欧美精品一区二区视频 | 毛片在哪里看 | 日本a∨精品中文字幕在线 被啪羞羞视频在线观看 | 国产亚洲精品成人 | 在线成人一区 | 久草视频国产在线 | 亚洲人成中文字幕在线观看 | 免费在线观看成年人视频 | 久久久久一区二区三区四区五区 | 一区二区三区日本在线观看 | 一本色道久久综合亚洲精品小说 |