摘要:局部變量位于作用域鏈的起始位置,因此訪問速度最快全局變量位于作用域鏈的最末端,因此訪問速度最慢。如訪問時間實例屬性第一層原型屬性第二層原型屬性在同一個函數(shù)中沒必要多次讀取同一個對象成員,建議第一次查詢到值后就將其存儲在局部變量中。
javascript中有四種基本的數(shù)據(jù)存取位置:字面量、變量、數(shù)組元素、對象成員。
1.訪問字面量和局部變量的速度最快,訪問數(shù)組元素和對象成員相對較慢。
2.變量在作用域鏈中的位置越深,訪問所需時間越長。
-局部變量位于作用域鏈的起始位置,因此訪問速度最快;
-全局變量位于作用域鏈的最末端,因此訪問速度最慢。
3.with語句和try-catch中的catch子句可以改變執(zhí)行環(huán)境的作用域鏈,有時會增加訪問代價,應(yīng)小心使用。
-with(A)會創(chuàng)建一個變量對象推入作用域鏈的首位,這個變量對象擁有A對象的所有屬性
function initUI(){ width(document){//雖然避免了多次書寫document,但是其他局部變量(如i)處于作用域鏈的第二個對象中 let bd = body, links = getElementsByTagName("a"), i=0, len = links.length //其他代碼 } }
-catch()子句會把異常對象推入作用域鏈的首位,catch代碼塊內(nèi)部訪問的所有局部變量會被放到作用域鏈的第二個對象中。
4.嵌套的對象成員會明顯影響性能,盡量少用。
如執(zhí)行時間:location.href < window.location.href < window.location.href.toString()
5.就對象及對象原型來說,屬性或方法在原型鏈中的位置越深,訪問它的速度越慢。
如訪問時間:實例屬性 < 第一層原型屬性 < 第二層原型屬性
6.在同一個函數(shù)中沒必要多次讀取同一個對象成員,建議第一次查詢到值后就將其存儲在局部變量中。
//bad if(objecA.attr === 1 || objecA.attr === 2 || objecA.attr === 3){} //good const { attr } = objecA if(attr === 1 || attr === 2 || attr === 3){}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/99692.html
摘要:性能訪問字面量和局部變量的速度是最快的,訪問數(shù)組和對象成員相對較慢變量標(biāo)識符解析過程搜索執(zhí)行環(huán)境的作用域鏈,查找同名標(biāo)識符。建議將全局變量存儲到局部變量,加快讀寫速度。優(yōu)化建議將常用的跨作用域變量存儲到局部變量,然后直接訪問局部變量。 缺陷 這本書是2010年出版的,這本書談性能是有時效性的,現(xiàn)在馬上就2018年了,這幾年前端發(fā)展的速度是飛快的,書里面還有一些內(nèi)容考慮IE6、7、8的東...
摘要:除此以外,讓元素脫離文檔流也是一個很好的方法。因為元素一旦脫離文檔流,它對其他元素的影響幾乎為零,性能的損耗就能夠有效局限于一個較小的范圍。講完重排與重繪,往元素上綁定事件也是引起性能問題的元兇。高性能這本書非常精致,內(nèi)容也非常豐富。 showImg(https://segmentfault.com/img/bVJgbt?w=600&h=784); 入手《高性能JavaScript》一...
摘要:加載的模塊會以參數(shù)形式傳入該函數(shù),從而在回調(diào)函數(shù)內(nèi)部就可以使用這些模塊。異步加載,和,瀏覽器不會失去響應(yīng)它指定的回調(diào)函數(shù),只有前面的模塊都加載成功后,才會運行,解決了依賴性的問題。插件,可以讓回調(diào)函數(shù)在頁面結(jié)構(gòu)加載完成后再運行。 這次主要是對《高性能JavaScript》一書的讀書筆記,記錄下自己之前沒有注意到或者需要引起重視的地方 第一章 加載和執(zhí)行 js代碼在執(zhí)行過程中會阻塞瀏覽...
摘要:原文地址一個非常適合入門學(xué)習(xí)的博客項目前端掘金一個非常適合入門學(xué)習(xí)的項目,代碼清晰結(jié)構(gòu)合理新聞前端掘金介紹一個由編寫的新聞。深入淺出讀書筆記知乎專欄前端專欄前端掘金去年的一篇老文章,恰好今天專欄開通,遷移過來。 破解前端面試(80% 應(yīng)聘者不及格系列):從閉包說起 - 掘金修訂說明:發(fā)布《80% 應(yīng)聘者都不及格的 JS 面試題》之后,全網(wǎng)閱讀量超過 6W,在知乎、掘金、cnodejs ...
摘要:原文地址一個非常適合入門學(xué)習(xí)的博客項目前端掘金一個非常適合入門學(xué)習(xí)的項目,代碼清晰結(jié)構(gòu)合理新聞前端掘金介紹一個由編寫的新聞。深入淺出讀書筆記知乎專欄前端專欄前端掘金去年的一篇老文章,恰好今天專欄開通,遷移過來。 破解前端面試(80% 應(yīng)聘者不及格系列):從閉包說起 - 掘金修訂說明:發(fā)布《80% 應(yīng)聘者都不及格的 JS 面試題》之后,全網(wǎng)閱讀量超過 6W,在知乎、掘金、cnodejs ...
閱讀 889·2021-09-07 09:58
閱讀 2760·2021-08-31 09:42
閱讀 2911·2019-08-30 14:18
閱讀 3134·2019-08-30 14:08
閱讀 1895·2019-08-30 12:57
閱讀 2810·2019-08-26 13:31
閱讀 1360·2019-08-26 11:58
閱讀 1115·2019-08-23 18:06