settimeout與for迴圈的問題

2021-09-02 23:09:53 字數 482 閱讀 9532

for (var i=0;i<=5;i++),1000);

}console.log(i);//666666

以上控制台輸出結果是66666.為什麼嗎?

所以當我們執行for迴圈的時候是迴圈完畢的時候在執行settimeout這個方法所以都是66666

為了避免上,面的情況我們用了立即執行函式

1.  ( function() )();      其實就是想當於函式的自呼叫

2.( function () () ); 

for (var i = 0; i < 3; i++)(i));

}

就是將settimeout進行封裝,此時定時函式的變數作用域就變為f函式**塊內,每次for迴圈傳給定時器的i值都會變為定時函式的私有變數值,這樣就達到了預期目的。 

Break,Continue使用與For迴圈練習

break例項 package com.littlewu.struct public class breakdemo01 system.out.println i continue例項和break彼此的區別 package com.littlewu.struct public class conti...

Python if判斷與while for迴圈語句

if判斷 在 命令中,經常會出現需要條件判斷後後選擇執行方向的情況,在通常情況下我們可以選擇if條件判斷。if條件判斷 if 條件1 code1 code2 code3 意思是當條件1為真的時候,執行下面的 塊 if else 條件判斷 if 條件1 塊1 else 塊2在if條件使用的情況中,既然...

關於for迴圈與setTimeout的延遲

在for迴圈中使用settimeout時,想使其每個settimeout在上乙個settimeout的基礎上進行延時,使用傳入陣列方式設定時間時,發現實際是按照每次設定的settimeout的延時執行的,而不是相加,例 let time 4,3,5,1,2 for let i 0 i time.le...