有只小跳蛙
2022-11-20 17:13:29
var a=5; setTimeout(function(){ alert(a); a=666; },1000); a=66;
1 回答

忽然笑
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
這個(gè)是異步的原因。瀏覽器解析js代碼的時(shí)候是從上到下解析的,并且js是單線(xiàn)程的。
主線(xiàn)程執(zhí)行第一句var a = 5;執(zhí)行第二句
setTimeout( function () { alert(a); a = 666; }, 1000); |
的時(shí)候發(fā)現(xiàn)是一個(gè)異步函數(shù)就會(huì)放在隊(duì)列中(等待主線(xiàn)程的任務(wù)都執(zhí)行完畢的時(shí)候才會(huì)執(zhí)行。)
主線(xiàn)程繼續(xù)執(zhí)行第三句a = 66;這時(shí)主線(xiàn)程的任務(wù)都執(zhí)行完畢了,開(kāi)始執(zhí)行隊(duì)列中的任務(wù)(也就是定時(shí)器那一塊代碼),
alert(a)的時(shí)候,這時(shí)a的值已經(jīng)是66了。
添加回答
舉報(bào)
0/150
提交
取消