成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

《高性能javascript》讀書(shū)筆記-第二章 數(shù)據(jù)存取

everfight / 2415人閱讀

摘要:局部變量位于作用域鏈的起始位置,因此訪問(wèn)速度最快全局變量位于作用域鏈的最末端,因此訪問(wèn)速度最慢。如訪問(wèn)時(shí)間實(shí)例屬性第一層原型屬性第二層原型屬性在同一個(gè)函數(shù)中沒(méi)必要多次讀取同一個(gè)對(duì)象成員,建議第一次查詢到值后就將其存儲(chǔ)在局部變量中。

javascript中有四種基本的數(shù)據(jù)存取位置:字面量、變量、數(shù)組元素、對(duì)象成員。

1.訪問(wèn)字面量和局部變量的速度最快,訪問(wèn)數(shù)組元素和對(duì)象成員相對(duì)較慢。

2.變量在作用域鏈中的位置越深,訪問(wèn)所需時(shí)間越長(zhǎng)。

-局部變量位于作用域鏈的起始位置,因此訪問(wèn)速度最快;

-全局變量位于作用域鏈的最末端,因此訪問(wèn)速度最慢。

3.with語(yǔ)句和try-catch中的catch子句可以改變執(zhí)行環(huán)境的作用域鏈,有時(shí)會(huì)增加訪問(wèn)代價(jià),應(yīng)小心使用。

-with(A)會(huì)創(chuàng)建一個(gè)變量對(duì)象推入作用域鏈的首位,這個(gè)變量對(duì)象擁有A對(duì)象的所有屬性

function initUI(){
    width(document){//雖然避免了多次書(shū)寫(xiě)document,但是其他局部變量(如i)處于作用域鏈的第二個(gè)對(duì)象中
      let bd = body,
        links = getElementsByTagName("a"),
        i=0,
        len = links.length
    //其他代碼
  }
}

-catch()子句會(huì)把異常對(duì)象推入作用域鏈的首位,catch代碼塊內(nèi)部訪問(wèn)的所有局部變量會(huì)被放到作用域鏈的第二個(gè)對(duì)象中。

4.嵌套的對(duì)象成員會(huì)明顯影響性能,盡量少用。

如執(zhí)行時(shí)間:location.href < window.location.href < window.location.href.toString()

5.就對(duì)象及對(duì)象原型來(lái)說(shuō),屬性或方法在原型鏈中的位置越深,訪問(wèn)它的速度越慢。

如訪問(wèn)時(shí)間:實(shí)例屬性 < 第一層原型屬性 < 第二層原型屬性

6.在同一個(gè)函數(shù)中沒(méi)必要多次讀取同一個(gè)對(duì)象成員,建議第一次查詢到值后就將其存儲(chǔ)在局部變量中。

//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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99692.html

相關(guān)文章

  • 讀書(shū)筆記】《性能JavaScript

    摘要:性能訪問(wèn)字面量和局部變量的速度是最快的,訪問(wèn)數(shù)組和對(duì)象成員相對(duì)較慢變量標(biāo)識(shí)符解析過(guò)程搜索執(zhí)行環(huán)境的作用域鏈,查找同名標(biāo)識(shí)符。建議將全局變量存儲(chǔ)到局部變量,加快讀寫(xiě)速度。優(yōu)化建議將常用的跨作用域變量存儲(chǔ)到局部變量,然后直接訪問(wèn)局部變量。 缺陷 這本書(shū)是2010年出版的,這本書(shū)談性能是有時(shí)效性的,現(xiàn)在馬上就2018年了,這幾年前端發(fā)展的速度是飛快的,書(shū)里面還有一些內(nèi)容考慮IE6、7、8的東...

    chengjianhua 評(píng)論0 收藏0
  • 性能JavaScript讀書(shū)筆記

    摘要:除此以外,讓元素脫離文檔流也是一個(gè)很好的方法。因?yàn)樵匾坏┟撾x文檔流,它對(duì)其他元素的影響幾乎為零,性能的損耗就能夠有效局限于一個(gè)較小的范圍。講完重排與重繪,往元素上綁定事件也是引起性能問(wèn)題的元兇。高性能這本書(shū)非常精致,內(nèi)容也非常豐富。 showImg(https://segmentfault.com/img/bVJgbt?w=600&h=784); 入手《高性能JavaScript》一...

    W_BinaryTree 評(píng)論0 收藏0
  • 性能JavaScript》(讀書(shū)筆記

    摘要:加載的模塊會(huì)以參數(shù)形式傳入該函數(shù),從而在回調(diào)函數(shù)內(nèi)部就可以使用這些模塊。異步加載,和,瀏覽器不會(huì)失去響應(yīng)它指定的回調(diào)函數(shù),只有前面的模塊都加載成功后,才會(huì)運(yùn)行,解決了依賴(lài)性的問(wèn)題。插件,可以讓回調(diào)函數(shù)在頁(yè)面結(jié)構(gòu)加載完成后再運(yùn)行。 這次主要是對(duì)《高性能JavaScript》一書(shū)的讀書(shū)筆記,記錄下自己之前沒(méi)有注意到或者需要引起重視的地方 第一章 加載和執(zhí)行 js代碼在執(zhí)行過(guò)程中會(huì)阻塞瀏覽...

    moven_j 評(píng)論0 收藏0
  • 前端補(bǔ)集 - 收藏集 - 掘金

    摘要:原文地址一個(gè)非常適合入門(mén)學(xué)習(xí)的博客項(xiàng)目前端掘金一個(gè)非常適合入門(mén)學(xué)習(xí)的項(xiàng)目,代碼清晰結(jié)構(gòu)合理新聞前端掘金介紹一個(gè)由編寫(xiě)的新聞。深入淺出讀書(shū)筆記知乎專(zhuān)欄前端專(zhuān)欄前端掘金去年的一篇老文章,恰好今天專(zhuān)欄開(kāi)通,遷移過(guò)來(lái)。 破解前端面試(80% 應(yīng)聘者不及格系列):從閉包說(shuō)起 - 掘金修訂說(shuō)明:發(fā)布《80% 應(yīng)聘者都不及格的 JS 面試題》之后,全網(wǎng)閱讀量超過(guò) 6W,在知乎、掘金、cnodejs ...

    YorkChen 評(píng)論0 收藏0
  • 前端補(bǔ)集 - 收藏集 - 掘金

    摘要:原文地址一個(gè)非常適合入門(mén)學(xué)習(xí)的博客項(xiàng)目前端掘金一個(gè)非常適合入門(mén)學(xué)習(xí)的項(xiàng)目,代碼清晰結(jié)構(gòu)合理新聞前端掘金介紹一個(gè)由編寫(xiě)的新聞。深入淺出讀書(shū)筆記知乎專(zhuān)欄前端專(zhuān)欄前端掘金去年的一篇老文章,恰好今天專(zhuān)欄開(kāi)通,遷移過(guò)來(lái)。 破解前端面試(80% 應(yīng)聘者不及格系列):從閉包說(shuō)起 - 掘金修訂說(shuō)明:發(fā)布《80% 應(yīng)聘者都不及格的 JS 面試題》之后,全網(wǎng)閱讀量超過(guò) 6W,在知乎、掘金、cnodejs ...

    AbnerMing 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<