摘要:而命令聲明的,在全局范圍內(nèi)都有效,全局只有一個(gè)變量,循環(huán)執(zhí)行語句也相當(dāng)于一個(gè)塊級(jí)作用域。,就是,,,,看一下用降級(jí)到的樣子基本差不多
前幾天面試遇到了一些問題,恰好今天偶然間看到了這個(gè)問題,決定記錄一下
定時(shí)器中打印結(jié)果為5,考察知識(shí)點(diǎn)變量提升,同步和異步
解答:首先定時(shí)器為異步操作,需要等待函數(shù)體執(zhí)行完畢才可以繼續(xù)執(zhí)行,也就是此時(shí)的0,1,2,3,4已經(jīng)打印出來了,i=4時(shí)條件成立,i++,此時(shí)i=5,下一輪判斷失敗,結(jié)束循環(huán)
因?yàn)関ar 存在變量提升,相當(dāng)于這樣
所以最后的為5,定時(shí)器輸出為5
然后我又想了想,如果定時(shí)器想要打印出0,1,2,3,4有幾種實(shí)現(xiàn)方式
第一種:
上結(jié)果
采用立即執(zhí)行表達(dá)式來模擬塊級(jí)作用域,這樣的作用是每次將i的值封存在這個(gè)匿名函數(shù)中,根據(jù)作用域返回的定時(shí)器會(huì)讀取匿名函數(shù)傳遞的參數(shù),而不會(huì)去讀取相隔那么遠(yuǎn)的放在全局的值,這樣就OK了
第二種 es6 let
原理呢和上面差不多,只是采用es6語法,就是let聲明的變量只在它所在的代碼塊有效。而var命令聲明的,在全局范圍內(nèi)都有效,全局只有一個(gè)變量i,for循環(huán)執(zhí)行語句也相當(dāng)于一個(gè)塊級(jí)作用域。so,就是0,1,2,3,4
看一下let用babel降級(jí)到es5的樣子,基本差不多
-----------------------------end------------------------------------------------
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/99570.html
摘要:前言內(nèi)存泄漏指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。這里就講一些常見會(huì)帶來內(nèi)存泄露的原因。解決方案和都設(shè)為。 前言 內(nèi)存泄漏指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。內(nèi)存泄漏并非指內(nèi)存在物理上的消失,而是應(yīng)用程序分配某段內(nèi)存后,由于設(shè)計(jì)錯(cuò)誤,導(dǎo)致在釋放該段內(nèi)存之前就失去了對(duì)該段內(nèi)存的控制,從而造成了內(nèi)存的浪費(fèi)。這里就講一些常見會(huì)帶來內(nèi)存泄露的原因。 0. 全局變量...
摘要:解決方式是,當(dāng)我們不使用它們的時(shí)候,手動(dòng)切斷鏈接淘汰把和對(duì)象轉(zhuǎn)為了真正的對(duì)象,避免了使用這種垃圾收集策略,消除了以下常見的內(nèi)存泄漏的主要原因。以上參考資料高程垃圾收集類內(nèi)存泄漏及如何避免內(nèi)存泄露及解決方案詳解類內(nèi)存泄漏及如何避免 showImg(http://ww1.sinaimg.cn/large/005Y4rCogy1ft1ikzcqzqj30ka0et77a.jpg); 前言 起...
摘要:不是引用類型,無法輸出簡(jiǎn)而言之,堆內(nèi)存存放引用值,棧內(nèi)存存放固定類型值。變量的查詢?cè)谧兞康牟樵冎校L問局部變量要比全局變量來得快,因此不需要向上搜索作用域鏈。 贊助我以寫出更好的文章,give me a cup of coffee? 2017最新最全前端面試題 基本類型值有:undefined,NUll,Boolean,Number和String,這些類型分別在內(nèi)存中占有固定的大小空...
摘要:內(nèi)存泄露內(nèi)存泄露概念在計(jì)算機(jī)科學(xué)中,內(nèi)存泄漏指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。判斷內(nèi)存泄漏,以字段為準(zhǔn)。 本文是 重溫基礎(chǔ) 系列文章的第二十二篇。 今日感受:優(yōu)化學(xué)習(xí)方法。 系列目錄: 【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理) 【重溫基礎(chǔ)】1-14篇 【重溫基礎(chǔ)】15.JS對(duì)象介紹 【重溫基礎(chǔ)】16.JSON對(duì)象介紹 【重溫基礎(chǔ)】1...
摘要:在中,由于垃圾回收是自動(dòng)進(jìn)行的,所以人們?cè)诰幋a時(shí)可能不太會(huì)注意這方面。時(shí),引擎統(tǒng)一對(duì)所有這些狀態(tài)的對(duì)象進(jìn)行回收。,表示釋放該對(duì)象后能得到的內(nèi)存大小。 在 JavaScript 中,由于垃圾回收是自動(dòng)進(jìn)行的,所以人們?cè)诰幋a時(shí)可能不太會(huì)注意這方面。但事實(shí)是,一些 webapp 在使用一段時(shí)間后,會(huì)出現(xiàn)卡頓的現(xiàn)象,特別是那些單頁應(yīng)用,包括 WebView 方式的手機(jī) app 。這個(gè)現(xiàn)象在傳統(tǒng)...
閱讀 2924·2021-11-17 09:33
閱讀 1646·2021-10-12 10:13
閱讀 2472·2021-09-22 15:48
閱讀 2349·2019-08-29 17:19
閱讀 2598·2019-08-26 11:50
閱讀 1574·2019-08-26 10:37
閱讀 1742·2019-08-23 16:54
閱讀 2929·2019-08-23 14:14