国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

從經典面試題看var與let

沈儉 / 766人閱讀

摘要:這也就解釋了以下代碼運行正常那么,的循環里發生了什么呢變量提升

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是在全局范圍有效,所以執行setTimeout里的函數時,先是在函數內部尋找 index 變量,沒有找到,所以去外層找,找到!這時index已經執行完循環,所以值為5;
let則是聲明在for循環的內部的,每一次for循環,一個block上下文,每次for循環都建立如下block。

{
   let index = 0;
   setTimeout(function (){
     console.log(index);
   }, 10)
}

這也就解釋了以下代碼運行正常

for(const index of array)

那么,var的for循環里發生了什么呢?

var index;//變量提升
{
   index = 0;
   setTimeout(function (){
     console.log(index);
   }, 10)
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/83739.html

相關文章

  • 八道面試題看JavaScript DOM事件機制

    摘要:事件機制其實很簡單,無非冒泡和捕獲這兩點,筆者不再贅述,網上相關文章一大堆,下面讓我們直接看面試題題目一到七,統一設置題目一請問點擊后,數字和,誰先被打印出來題目二請問點擊后,數字和,誰先被打印出來題目三請問點擊后,數字和,誰先被打印出來題 As we all know,事件機制其實很簡單,無非冒泡和捕獲這兩點,筆者不再贅述,網上相關文章一大堆,下面讓我們直接看面試題 題目一到七,統一...

    CollinPeng 評論0 收藏0
  • 帝都寒冬一年經驗前端面試總結

    摘要:不過幸運的是所有面試的公司都給了,在這里總結下經驗吧。這里推薦下我當時看的一篇的面經,木易楊老師寫的大廠高級前端面試題匯總。 前言 本人畢業一年,最近陸續面試了頭條、瓜子、360、猿輔導、中信銀行、老虎等公司,由于最近比較寒冬而且招1-3年的并不多,再加上自己對公司規模和位置有一定要求,所以最后合適的也就這幾家了。不過幸運的是所有面試的公司都給了offer,在這里總結下經驗吧。掘金:h...

    Scott 評論0 收藏0
  • JavaScript系列——JavaScript同步、異步、回調執行順序之經典閉包setTimeou

    摘要:同步異步回調傻傻分不清楚。分割線上面主要講了同步和回調執行順序的問題,接著我就舉一個包含同步異步回調的例子。同步優先回調內部有個,第二個是一個回調回調墊底。異步也,輪到回調的孩子們回調,出來執行了。 同步、異步、回調?傻傻分不清楚。 大家注意了,教大家一道口訣: 同步優先、異步靠邊、回調墊底(讀起來不順) 用公式表達就是: 同步 => 異步 => 回調 這口訣有什么用呢?用來對付面試的...

    lewif 評論0 收藏0

發表評論

0條評論

沈儉

|高級講師

TA的文章

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