JavaScript代碼性能優(yōu)化總結(jié)(推薦)
下面是我總結(jié)的一些小技巧,僅供參考。
以下代碼基本上在jQuery的源碼里面都可以看到,如有說得不對(duì)的地方,請(qǐng)大家指出。
盡量使用源生方法
javaScript是解釋性語言,相比編譯性語言執(zhí)行速度要慢。瀏覽器已經(jīng)實(shí)現(xiàn)的方法,就不要再去實(shí)現(xiàn)一遍了。另外,瀏覽器已經(jīng)實(shí)現(xiàn)的方法在算法方面已經(jīng)做了很多優(yōu)化。
避免全局查找
在一個(gè)函數(shù)中會(huì)用到全局對(duì)象存儲(chǔ)為局部變量來減少全局查找,因?yàn)樵L問局部變量的速度要比訪問全局變量的速度更快些。
盡量減少循環(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ì)在開始的時(shí)候初始化一個(gè)定時(shí)器。
創(chuàng)建對(duì)象的另外一個(gè)辦法-不使用new
用做標(biāo)記的變量盡可能使用布爾類型
直接用true和false做標(biāo)記,不要使用數(shù)字或者字符串的1和0來做標(biāo)記。
以上這篇JavaScript代碼性能優(yōu)化總結(jié)(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
每天一篇javascript學(xué)習(xí)小結(jié)(String對(duì)象)
這篇文章主要介紹了javascript中的String對(duì)象知識(shí)點(diǎn),對(duì)String對(duì)象的基本使用方法,以及各種方法進(jìn)行整理,感興趣的小伙伴們可以參考一下2015-11-11千萬別錯(cuò)過的JavaScript?sort方法使用指南
sort方法在我們的日常開發(fā)中是經(jīng)常使用的,sort方法一般是用來對(duì)數(shù)組進(jìn)行排序的,但是你是否知道sort方法默認(rèn)是按什么方式排序的呢?下面就和我一起來深入了解sort方法吧2023-05-05使用JavaScript開發(fā)跨平臺(tái)的桌面應(yīng)用詳解
下面小編就為大家?guī)硪黄褂肑avaScript開發(fā)跨平臺(tái)的桌面應(yīng)用詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07JavaScript計(jì)算字符串實(shí)際長度方法示例
這篇文章主要為大家介紹了JavaScript計(jì)算字符串實(shí)際長度方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08javscript 數(shù)組扁平化的實(shí)現(xiàn)
這篇文章主要介紹了javscript 數(shù)組扁平化的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02JavaScript鼠標(biāo)移動(dòng)事件以及實(shí)戰(zhàn)案例
在學(xué)習(xí)JS中我對(duì)鼠標(biāo)移動(dòng)事件進(jìn)行了一些總結(jié),需要的可以作參考,下面這篇文章主要給大家介紹了關(guān)于JavaScript鼠標(biāo)移動(dòng)事件以及實(shí)戰(zhàn)案例的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05