JavaScript代碼性能優(yōu)化總結(jié)篇
下面是我總結(jié)的一些小技巧,僅供參考。
以下代碼基本上在jQuery的源碼里面都可以看到,如有說(shuō)得不對(duì)的地方,請(qǐng)大家指出。
盡量使用源生方法
javaScript是解釋性語(yǔ)言,相比編譯性語(yǔ)言執(zhí)行速度要慢。瀏覽器已經(jīng)實(shí)現(xiàn)的方法,就不要再去實(shí)現(xiàn)一遍了。另外,瀏覽器已經(jīng)實(shí)現(xiàn)的方法在算法方面已經(jīng)做了很多優(yōu)化。
避免全局查找
在一個(gè)函數(shù)中會(huì)用到全局對(duì)象存儲(chǔ)為局部變量來(lái)減少全局查找,因?yàn)樵L(fǎng)問(wèn)局部變量的速度要比訪(fǎng)問(wèn)全局變量的速度更快些。
盡量減少循環(huán)次數(shù)
少一層循環(huán),就能提高數(shù)倍性能。如果要對(duì)一個(gè)數(shù)組的每個(gè)元素進(jìn)行多次操作,盡可能使用一次循環(huán),多次操作,而不是多次循環(huán),每次循環(huán)執(zhí)行一次操作。尤其是在進(jìn)行多個(gè)正則匹配的時(shí)候,盡可能合并正則表達(dá)式,在一次遍歷中盡可能找到相應(yīng)的匹配。
循環(huán)
switch
條件分支
將條件分支,按可能性順序從高到低排列:可以減少解釋器對(duì)條件的探測(cè)次數(shù)。
在同一條件 >2條件分支時(shí),使用switch優(yōu)于if:switch分支選擇的效率高于if,在IE下尤為明顯。4條分支的測(cè)試,IE下switch的執(zhí)行時(shí)間約為if的一半。
使用三目運(yùn)算符替代條件分支。
定時(shí)器
如果針對(duì)的是不斷運(yùn)行的代碼,不應(yīng)該使用setTimeout,而應(yīng)該是用setInterval,因?yàn)閟etTimeout每一次都會(huì)初始化一個(gè)定時(shí)器,而setInterval只會(huì)在開(kāi)始的時(shí)候初始化一個(gè)定時(shí)器。定時(shí)器

創(chuàng)建對(duì)象的另外一個(gè)辦法-不使用new
用做標(biāo)記的變量盡可能使用布爾類(lèi)型
直接用true和false做標(biāo)記,不要使用數(shù)字或者字符串的1和0來(lái)做標(biāo)記。
相關(guān)文章
javascript 函數(shù)調(diào)用規(guī)則
構(gòu)造器函數(shù)以大寫(xiě)字母開(kāi)頭是一個(gè)好的習(xí)慣,這可以作為一個(gè)提醒,讓你在調(diào)用的時(shí)候不要忘記前面的new運(yùn)算符.2009-08-08
最全面的百度地圖JavaScript離線(xiàn)版開(kāi)發(fā)
最全面的百度地圖JavaScript離線(xiàn)版開(kāi)發(fā),這篇文章主要為大家詳細(xì)介紹了JavaScript離線(xiàn)版開(kāi)發(fā)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
javascript實(shí)現(xiàn)數(shù)字配對(duì)游戲的實(shí)例講解
下面小編就為大家分享一篇javascript實(shí)現(xiàn)數(shù)字配對(duì)游戲的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
純JavaScript實(shí)現(xiàn)HTML5 Canvas六種特效濾鏡示例
實(shí)現(xiàn)了六款簡(jiǎn)單常見(jiàn)HTML5 Canvas特效濾鏡,并且封裝成一個(gè)純JavaScript可調(diào)用的API文件gloomyfishfilter.js,程序源代碼如下,感興趣的朋友可以參考下哈2013-06-06
JavaScript常見(jiàn)JSON操作實(shí)例分析
這篇文章主要介紹了JavaScript常見(jiàn)JSON操作,簡(jiǎn)單描述了json的概念、常見(jiàn)json類(lèi)型,并結(jié)合實(shí)例形式分析了json的序列化、轉(zhuǎn)換、格式化、解析等相關(guān)操作技巧,需要的朋友可以參考下2018-08-08
jquery單行文字向上滾動(dòng)效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了jquery單行文字向上滾動(dòng)效果的具體實(shí)現(xiàn),此效果適應(yīng)于很多場(chǎng)景,會(huì)的不會(huì)的都要學(xué)習(xí)下啊2014-09-09
Javascript實(shí)現(xiàn)簡(jiǎn)易導(dǎo)航欄
這篇文章主要為大家詳細(xì)介紹了Javascript實(shí)現(xiàn)簡(jiǎn)易導(dǎo)航欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06






