摘要:這也就解釋了以下代碼運行正常那么,的循環(huán)里發(fā)生了什么呢變量提升
for (var index = 0; index < 5; index++) { setTimeout(function (){ console.log(index);//5 }, 10) } console.log(index)// 5
這是個老生常談的問題,但是今天我才明白過來實際是怎么回事。
使用ES6語法的話,修改如下
for (let index = 0; index < 5; index++) { setTimeout(function (){ console.log(index);//0,1,2,3,4 }, 10) } console.log(index)// ReferenceError: index is not defined
var是在全局范圍有效,所以執(zhí)行setTimeout里的函數(shù)時,先是在函數(shù)內(nèi)部尋找 index 變量,沒有找到,所以去外層找,找到!這時index已經(jīng)執(zhí)行完循環(huán),所以值為5;
而let則是聲明在for循環(huán)的內(nèi)部的,每一次for循環(huán),一個block上下文,每次for循環(huán)都建立如下block。
{ let index = 0; setTimeout(function (){ console.log(index); }, 10) }
這也就解釋了以下代碼運行正常
for(const index of array)
那么,var的for循環(huán)里發(fā)生了什么呢?
var index;//變量提升 { index = 0; setTimeout(function (){ console.log(index); }, 10) }
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/83739.html
摘要:事件機制其實很簡單,無非冒泡和捕獲這兩點,筆者不再贅述,網(wǎng)上相關文章一大堆,下面讓我們直接看面試題題目一到七,統(tǒng)一設置題目一請問點擊后,數(shù)字和,誰先被打印出來題目二請問點擊后,數(shù)字和,誰先被打印出來題目三請問點擊后,數(shù)字和,誰先被打印出來題 As we all know,事件機制其實很簡單,無非冒泡和捕獲這兩點,筆者不再贅述,網(wǎng)上相關文章一大堆,下面讓我們直接看面試題 題目一到七,統(tǒng)一...
摘要:不過幸運的是所有面試的公司都給了,在這里總結下經(jīng)驗吧。這里推薦下我當時看的一篇的面經(jīng),木易楊老師寫的大廠高級前端面試題匯總。 前言 本人畢業(yè)一年,最近陸續(xù)面試了頭條、瓜子、360、猿輔導、中信銀行、老虎等公司,由于最近比較寒冬而且招1-3年的并不多,再加上自己對公司規(guī)模和位置有一定要求,所以最后合適的也就這幾家了。不過幸運的是所有面試的公司都給了offer,在這里總結下經(jīng)驗吧。掘金:h...
摘要:同步異步回調(diào)傻傻分不清楚。分割線上面主要講了同步和回調(diào)執(zhí)行順序的問題,接著我就舉一個包含同步異步回調(diào)的例子。同步優(yōu)先回調(diào)內(nèi)部有個,第二個是一個回調(diào)回調(diào)墊底。異步也,輪到回調(diào)的孩子們回調(diào),出來執(zhí)行了。 同步、異步、回調(diào)?傻傻分不清楚。 大家注意了,教大家一道口訣: 同步優(yōu)先、異步靠邊、回調(diào)墊底(讀起來不順) 用公式表達就是: 同步 => 異步 => 回調(diào) 這口訣有什么用呢?用來對付面試的...
閱讀 2169·2021-11-15 11:36
閱讀 1516·2021-09-23 11:55
閱讀 2505·2021-09-22 15:16
閱讀 2038·2019-08-30 15:45
閱讀 1875·2019-08-29 11:10
閱讀 1039·2019-08-26 13:40
閱讀 929·2019-08-26 10:44
閱讀 3181·2019-08-23 14:55