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

資訊專欄INFORMATION COLUMN

for循環(huán)let和var在定時器中的變量泄露

PascalXie / 751人閱讀

摘要:而命令聲明的,在全局范圍內(nèi)都有效,全局只有一個變量,循環(huán)執(zhí)行語句也相當于一個塊級作用域。,就是,,,,看一下用降級到的樣子基本差不多

前幾天面試遇到了一些問題,恰好今天偶然間看到了這個問題,決定記錄一下

定時器中打印結果為5,考察知識點變量提升,同步和異步
解答:首先定時器為異步操作,需要等待函數(shù)體執(zhí)行完畢才可以繼續(xù)執(zhí)行,也就是此時的0,1,2,3,4已經(jīng)打印出來了,i=4時條件成立,i++,此時i=5,下一輪判斷失敗,結束循環(huán)
因為var 存在變量提升,相當于這樣


所以最后的為5,定時器輸出為5

然后我又想了想,如果定時器想要打印出0,1,2,3,4有幾種實現(xiàn)方式
第一種:

上結果

采用立即執(zhí)行表達式來模擬塊級作用域,這樣的作用是每次將i的值封存在這個匿名函數(shù)中,根據(jù)作用域返回的定時器會讀取匿名函數(shù)傳遞的參數(shù),而不會去讀取相隔那么遠的放在全局的值,這樣就OK了

第二種 es6 let


原理呢和上面差不多,只是采用es6語法,就是let聲明的變量只在它所在的代碼塊有效。而var命令聲明的,在全局范圍內(nèi)都有效,全局只有一個變量i,for循環(huán)執(zhí)行語句也相當于一個塊級作用域。so,就是0,1,2,3,4

看一下let用babel降級到es5的樣子,基本差不多

-----------------------------end------------------------------------------------

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

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

相關文章

  • 【拒絕拖延】常見的JavaScript內(nèi)存泄露原因及解決方案

    摘要:前言內(nèi)存泄漏指由于疏忽或錯誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。這里就講一些常見會帶來內(nèi)存泄露的原因。解決方案和都設為。 前言 內(nèi)存泄漏指由于疏忽或錯誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。內(nèi)存泄漏并非指內(nèi)存在物理上的消失,而是應用程序分配某段內(nèi)存后,由于設計錯誤,導致在釋放該段內(nèi)存之前就失去了對該段內(nèi)存的控制,從而造成了內(nèi)存的浪費。這里就講一些常見會帶來內(nèi)存泄露的原因。 0. 全局變量...

    tangr206 評論0 收藏0
  • JS高程中的垃圾回收機制與常見內(nèi)存泄露的解決方法

    摘要:解決方式是,當我們不使用它們的時候,手動切斷鏈接淘汰把和對象轉(zhuǎn)為了真正的對象,避免了使用這種垃圾收集策略,消除了以下常見的內(nèi)存泄漏的主要原因。以上參考資料高程垃圾收集類內(nèi)存泄漏及如何避免內(nèi)存泄露及解決方案詳解類內(nèi)存泄漏及如何避免 showImg(http://ww1.sinaimg.cn/large/005Y4rCogy1ft1ikzcqzqj30ka0et77a.jpg); 前言 起...

    kidsamong 評論0 收藏0
  • 詳解js變量、作用域及內(nèi)存

    摘要:不是引用類型,無法輸出簡而言之,堆內(nèi)存存放引用值,棧內(nèi)存存放固定類型值。變量的查詢在變量的查詢中,訪問局部變量要比全局變量來得快,因此不需要向上搜索作用域鏈。 贊助我以寫出更好的文章,give me a cup of coffee? 2017最新最全前端面試題 基本類型值有:undefined,NUll,Boolean,Number和String,這些類型分別在內(nèi)存中占有固定的大小空...

    waltr 評論0 收藏0
  • 【重溫基礎】22.內(nèi)存管理

    摘要:內(nèi)存泄露內(nèi)存泄露概念在計算機科學中,內(nèi)存泄漏指由于疏忽或錯誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。判斷內(nèi)存泄漏,以字段為準。 本文是 重溫基礎 系列文章的第二十二篇。 今日感受:優(yōu)化學習方法。 系列目錄: 【復習資料】ES6/ES7/ES8/ES9資料整理(個人整理) 【重溫基礎】1-14篇 【重溫基礎】15.JS對象介紹 【重溫基礎】16.JSON對象介紹 【重溫基礎】1...

    Pandaaa 評論0 收藏0
  • [JavaScript 隨筆] 垃圾回收

    摘要:在中,由于垃圾回收是自動進行的,所以人們在編碼時可能不太會注意這方面。時,引擎統(tǒng)一對所有這些狀態(tài)的對象進行回收。,表示釋放該對象后能得到的內(nèi)存大小。 在 JavaScript 中,由于垃圾回收是自動進行的,所以人們在編碼時可能不太會注意這方面。但事實是,一些 webapp 在使用一段時間后,會出現(xiàn)卡頓的現(xiàn)象,特別是那些單頁應用,包括 WebView 方式的手機 app 。這個現(xiàn)象在傳統(tǒng)...

    ConardLi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<