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

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 21:47:10
字體:
來源:轉載
供稿:網友
下面是一些關于客戶端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<len;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對象,因為創建時時間和空間的開銷都比較大,因此應該盡量考慮采用緩存。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品久久久久久久亚洲按摩 | 一级黄色在线免费观看 | 美女亚洲| 369看片你懂的小视频在线观看 | 香蕉久久久 | 成人午夜精品久久久久久久3d | 国产精品视频不卡 | av亚洲在线观看 | 久在线观看福利视频69 | 欧美日韩一 | 伊人一二三四区 | 99999久久久久久 | 2021免费日韩视频网 | 国产1区在线观看 | 日韩视频―中文字幕 | 毛片在线播放视频 | 国内精品国产三级国产a久久 | 国产精品久久久久久久久久久天堂 | 曰韩毛片 | 中文字幕一二三区芒果 | 欧美日韩大片在线观看 | 欧美一级三级在线观看 | 欧美性生交xxxxx久久久 | 国产瑟瑟视频 | 精品一区二区三区中文字幕 | 精品国产乱码一区二区 | 亚洲国产小视频 | 色柚视频网站ww色 | 欧洲狠狠鲁 | 黄色大片网站在线观看 | 欧美城网站地址 | 国产一区二区三区四 | 青青国产在线视频 | wwwcom国产 | 精品国产一区二区久久 | 最新中文字幕日本 | 国产va在线观看 | 国产在线91 | 一级电影免费 | 欧美性生交xxxxx久久久缅北 | 一级做人爱c黑人影片 |