上篇我們介紹了js閉包-關於在for迴圈中繫結事件列印變數i
我們可以將結果一次性列印出0 1 2 3 4,那麼下面我介紹一下每隔一秒鐘一次列印出 0 1 2 3 4
1000*i是重點
es5方法:
for (var i = 0; i < 5; i++) , 1000 * j);
})(i);
} settimeout(function() , 1000 * i);
結果
es6方法:
const tasks = ;
const output = (i) => new promise((resolve) => , 1000 * i);
});for (var i = 0; i < 5; i++)
//最後的i的值是在非同步全部完成之後
promise.all(tasks).then(() => , 1000);
});
結果:
es7方法:
const sleep = (timeountms) => new promise((resolve) => );
(async () =>
console.log(new date, i);
}//迴圈完成之後
Js閉包與迴圈
目標 點選任何乙個li,提示當前點選位置 1 先執行 1 位置,彈出5次警示框從0到4,執行的是for語句,i 在for內部已經變為5 2 li i 是獲取的li的htmlcollection物件,i i 相當於li.item i 3 為li i 繫結事件,li i onclick 實際上此時執行的...
關於js的閉包
要理解上面的問題,首先要理解清楚幾個概念 來自 閉包裡的微觀世界 區別就是值型別變數是可以直接訪問棧 stack 中的值 接下來的內容就是關於閉包的微觀世界 function a return b var c a 函式a執行後返回函式b,並將函式b賦給c c 輸出 1 本來這個地方變數i是定義在函式...
關於 let 在 for 迴圈中的理解
每次閱讀 ecmascript 6 入門 時,關於其中的一塊 總是不能很好的理解。如下 var a for let i 0 i 10 i a 6 6 與之對應的 如果使用 var 定義變數 i,最後都是輸出10 這個都沒什麼問題,那是因為for不是塊級作用域,變數 i 直接是全域性變數。我們都知道,...