欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

優(yōu)化javascript的執(zhí)行效率一些方法總結(jié)

 更新時(shí)間:2013年12月25日 15:04:52   作者:  
本文為大家介紹下優(yōu)化javascript的執(zhí)行效率一些方法,個(gè)人感覺還不錯(cuò),感興趣的朋友可以了解下
1、在低版本瀏覽器中(如IE6,IE7等)串聯(lián)字符串時(shí)使用數(shù)組的join方法就比使用+號來連接高效很多(如['aaa','bbb','ccc'].join()比'aaa'+'bbb'+'ccc'高效);

2、Array:
pop比shift高效,push比unshift高效。這對于設(shè)計(jì)二叉堆結(jié)構(gòu)比較重要,將最大或者最小的元素放在數(shù)組末尾最好。

3、數(shù)字取整最好用移位操作:
1.1 >> 0;

4、使用直接量創(chuàng)建Array和Object:
var a = [];
var o = {};

5、對象層次不要嵌套太多,減少對象的查找:
不要用a.b.c.d.e,這種設(shè)計(jì)方式獲取e對象。

6、鍵值對應(yīng)取值,與switch case的比較,鍵值對應(yīng),比switch case高效,各個(gè)瀏覽器均測試過,可以看看 關(guān)于這個(gè)比較的文章javascript小實(shí)驗(yàn);

7、如果你使用jq的話,還有一個(gè)$('xxxx').empty().append('xxxxxxx');和$('xxxxx').html('xxxxx');的比較,結(jié)果是$('xxxx').empty().append('xxxxxxx');勝出,文章地址是jQuery小實(shí)驗(yàn);

8、循環(huán)
在JavaScript中,我們可以使用for(;;),while(),for(in)三種循環(huán),這三種循環(huán)中for(in)的效率極差,因?yàn)樗枰樵兩⒘墟I,只要可以就應(yīng)該盡量少用。for(;;)和while循環(huán)的性能應(yīng)該說基本(平時(shí)使用時(shí))等價(jià)。

如果是循環(huán)變量遞增或遞減,不要單獨(dú)對循環(huán)變量賦值,應(yīng)該在它最后一次讀取的時(shí)候使用嵌套的++或—操作符。

如果要與數(shù)組的長度作比較,應(yīng)該事先把數(shù)組的length屬性放入一個(gè)局部變量中,減少查詢次數(shù)。

9、局部變量和全局變量
局部變量的速度要比全局變量的訪問速度更快,因?yàn)槿肿兞科鋵?shí)是全局對象的成員,而局部變量是放在函數(shù)的棧當(dāng)中的。

10、不使用Eval
使用eval相當(dāng)于在運(yùn)行時(shí)再次調(diào)用解釋引擎對內(nèi)容進(jìn)行運(yùn)行,需要消耗大量時(shí)間。這時(shí)候使用JavaScript所支持的閉包可以實(shí)現(xiàn)函數(shù)模版(關(guān)于閉包的內(nèi)容請參考函數(shù)式編程的有關(guān)內(nèi)容);

11、字符串連接
如果是追加字符串,最好使用s+=anotherStr操作,而不是要使用s=s+anotherStr;

12、把數(shù)字轉(zhuǎn)換成字符串,應(yīng)用"" + 1,雖然看起來比較丑一點(diǎn),但事實(shí)上這個(gè)效率是最高的,性能上來說:

("" +) > String() > .toString() > new String()

這條其實(shí)和下面的“直接量”有點(diǎn)類似,盡量使用編譯時(shí)就能使用的內(nèi)部操作要比運(yùn)行時(shí)使用的用戶操作要快。

String()屬于內(nèi)部函數(shù),所以速度很快,而.toString()要查詢原型中的函數(shù),所以速度遜色一些,new String()用于返回一個(gè)精確的副本;

13、浮點(diǎn)數(shù)轉(zhuǎn)換成整型,這個(gè)更容易出錯(cuò),很多人喜歡使用parseInt(),其實(shí)parseInt()是用于將字符串轉(zhuǎn)換成數(shù)字,而不是浮點(diǎn)數(shù)和整型之間的轉(zhuǎn)換,我們應(yīng)該使用Math.floor()或者M(jìn)ath.round()。

14、字符串遍歷操作
對字符串進(jìn)行循環(huán)操作,譬如替換、查找,應(yīng)使用正則表達(dá)式,因?yàn)楸旧鞪avaScript的循環(huán)速度就比較慢,而正則表達(dá)式的操作是用C寫成的語言的API,性能很好;

15、定時(shí)器
如果針對的是不斷運(yùn)行的代碼,不應(yīng)該使用setTimeout,而應(yīng)該是用setInterval。setTimeout每次要重新設(shè)置一個(gè)定時(shí)器;

更新中……,敬請期待!

相關(guān)文章

最新評論