JavaScript效率調(diào)優(yōu)經(jīng)驗(yàn)
更新時(shí)間:2009年06月04日 02:11:33 作者:
有時(shí)候大家在使用多字符的時(shí)候,需要用的到下面的知識(shí)。
1. 將循環(huán)次數(shù)的定義放到循環(huán)體外:這點(diǎn)好像所有的語言都是一樣的,在100個(gè)元素以上時(shí)效果越來越明顯。也就是說將for(var i=0;i<arrData.length;i++)修改為for(var i=0,len=arrData.length;i<len;i++)會(huì)很大地提高性能,因?yàn)樗苊饬嗣垦h(huán)一次計(jì)算一下length的操作。另外,有老外宣稱,降序循環(huán)速度更快,即for(var i=arrData.length-1;i>=0;i--)。本人測(cè)試后發(fā)現(xiàn)和升序循環(huán)相比效率差異不大。
2. 將多層對(duì)象引用改為更短路徑的引用:JavaScript中,這個(gè)問題非常明顯,如proposalNo域var proposalNoField = fm.proposalNo。在一個(gè)循環(huán)中(100次以上)使用proposalNoField.value和fm.proposalNo.value的區(qū)別非常巨大。所以盡量通過使用中間變量的方式來縮短訪問路徑。
3. 第三方JavaScript包的影響:由于JavaScript支持原型,如prototype.js就修改了Array的一些行為,有時(shí)自己寫的代碼是沒有問題的,但是如果被修改了原型,則也會(huì)發(fā)生問題,如prototype.js的1.4版本就存在Bug,某些情況下的數(shù)組排序會(huì)導(dǎo)致死循環(huán)。
2. 將多層對(duì)象引用改為更短路徑的引用:JavaScript中,這個(gè)問題非常明顯,如proposalNo域var proposalNoField = fm.proposalNo。在一個(gè)循環(huán)中(100次以上)使用proposalNoField.value和fm.proposalNo.value的區(qū)別非常巨大。所以盡量通過使用中間變量的方式來縮短訪問路徑。
3. 第三方JavaScript包的影響:由于JavaScript支持原型,如prototype.js就修改了Array的一些行為,有時(shí)自己寫的代碼是沒有問題的,但是如果被修改了原型,則也會(huì)發(fā)生問題,如prototype.js的1.4版本就存在Bug,某些情況下的數(shù)組排序會(huì)導(dǎo)致死循環(huán)。
您可能感興趣的文章:
相關(guān)文章
javascript內(nèi)存分配原理實(shí)例分析
這篇文章主要介紹了javascript內(nèi)存分配原理,結(jié)合實(shí)例形式分析了javascript原始值和引用值內(nèi)存分配的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-04-04
JavaScript格式化數(shù)字的函數(shù)代碼
當(dāng)要格式化的數(shù)字為null、空或非數(shù)字時(shí),返回的結(jié)果。默認(rèn)為02010-11-11
javascript數(shù)據(jù)結(jié)構(gòu)之二叉搜索樹實(shí)現(xiàn)方法
這篇文章主要介紹了javascript數(shù)據(jù)結(jié)構(gòu)之二叉搜索樹實(shí)現(xiàn)方法,較為詳細(xì)的分析了二叉搜索樹的概念、原理與JavaScript實(shí)現(xiàn)二叉搜索樹的方法,對(duì)于學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
JavaScript實(shí)現(xiàn)給浮點(diǎn)數(shù)添加千分位逗號(hào)的多種方法
JavaScript 是一門強(qiáng)大的前端語言,在處理數(shù)值格式化時(shí)提供了多種方法,在開發(fā)過程中,我們經(jīng)常需要將大數(shù)字格式化,使其更具可讀性,例如,將 12000000.11 轉(zhuǎn)換為 12,000,000.11,本文將詳細(xì)介紹 JavaScript 中如何實(shí)現(xiàn)這種格式化,需要的朋友可以參考下2025-04-04
微信小程序按鈕點(diǎn)擊跳轉(zhuǎn)頁(yè)面詳解
這篇文章主要介紹了微信小程序按鈕點(diǎn)擊跳轉(zhuǎn)頁(yè)面,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

