卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

js表格間距為0怎么調(diào) js如何調(diào)用時鐘間隔為10分鐘?

js如何調(diào)用時鐘間隔為10分鐘?通過設(shè)置定時器sJS中循環(huán)和閉包如何理解?提問者沒有附上代碼。根據(jù)描述,我猜代碼應(yīng)該是這樣的:for (var i 1 i lt 6 i){setTimeout(fun

js如何調(diào)用時鐘間隔為10分鐘?

通過設(shè)置定時器s

JS中循環(huán)和閉包如何理解?

提問者沒有附上代碼。根據(jù)描述,我猜代碼應(yīng)該是這樣的:

for (var i 1 i lt 6 i)

{

setTimeout(function(){ console . log(I)},i * 1000)

}

這個循環(huán)每秒將輸出6,所以讓 s分析一下這段代碼:初始I值為1,setTimeout會設(shè)置一個1*1000毫秒的定時器。在JS引擎中,定時器機(jī)制是將代碼函數(shù)(){console.log(i)}放入隊(duì)列中,等待觸發(fā)器觸發(fā)執(zhí)行。但是循環(huán)代碼的執(zhí)行還是在初始的JS線程中,沒有等待下一個循環(huán)馬上執(zhí)行,所以從2*1000到5*1000的5個函數(shù)都推了進(jìn)來,幾乎是省時的(5個周期對于現(xiàn)在的CPU來說基本是0毫秒)。所以從現(xiàn)在開始,該功能將每1、2、3、4和5秒執(zhí)行一次。在我們看來,1秒鐘就輸出一次我。

接下來,讓我們 讓我們看看為什么輸出5次6而不是1-5。然后,上面的過程還是在JS線程里。我按下定時器功能后,還是會被執(zhí)行。此時I的值為6,進(jìn)入循環(huán)體判斷ilt6失效,循環(huán)結(jié)束。JS線程結(jié)束。

在1000毫秒的觸發(fā)器被觸發(fā)后,JS解釋器被傳入code function(){console.log(i)},I變量對于這個函數(shù)塊是未定義的。解釋器開始從上面的塊代碼中搜索變量I。在這種情況下,只有兩層。函數(shù)的上層是JS環(huán)境的頂層,在global中找到變量I,其值為6,因此控制臺輸出6;接下來的四個觸發(fā)器觸發(fā)原理是一樣的,所以6輸出五次,間隔1秒。

為了加深我們的理解,讓 讓我們稍微修改一下代碼:

for (var i 1 i lt 6 i)

{

setTimeout((function(){ console . log(I)})(),i * 1000)

}

結(jié)果是一個12345的瞬時輸出,因?yàn)?sourceCodeBlock)()的行為是一個立即執(zhí)行行為,即在第一個JS循環(huán)線程中,sourceCodeBlock每循環(huán)執(zhí)行一次,它的上一個塊就是循環(huán)體,循環(huán)體中的I變量就是當(dāng)前循環(huán)中I的值。SetTimeout只是將這個閉包塊執(zhí)行的結(jié)果推入定時器隊(duì)列,而這個執(zhí)行當(dāng)觸發(fā)器被觸發(fā)時,行結(jié)果在JS運(yùn)行時環(huán)境中既不是函數(shù)類型也不是表達(dá)式類型,這沒有意義,將在引擎解釋階段進(jìn)行優(yōu)化。所以在接下來的5秒鐘里,瀏覽器沒有。;不要做任何事。