課程
/前端開(kāi)發(fā)
/JavaScript
/JavaScript進(jìn)階篇
如下代碼,1、為什么i=5必須放在外面作為全局變量整個(gè)秒數(shù)才會(huì)倒數(shù)到0,為什么放在函數(shù)里面作為局部變量就只倒數(shù)1此顯示結(jié)果為4.
2、如果我在函數(shù)中不用var聲明是局部變量,直接就i=5那應(yīng)該是全局變量吧,但是還是只顯示4,秒數(shù)不變。
求解釋,謝謝~~
2016-03-27
源自:JavaScript進(jìn)階篇 8-17
正在回答
1、你這代碼,我復(fù)制過(guò)來(lái)看,好像是從4開(kāi)始,并且是不會(huì)倒數(shù)的。很顯然,最開(kāi)始autotime()調(diào)用函數(shù),i = 5,i有自減1,代碼就把i的值(4)賦值給了span標(biāo)簽里面的內(nèi)容。因此是從4開(kāi)始的。而不會(huì)倒數(shù)是因?yàn)閟etTimeout()這個(gè)對(duì)象是在指定的延遲時(shí)間之后來(lái)執(zhí)行代碼,根本沒(méi)有達(dá)到循環(huán)的效果。應(yīng)該用setInterval().
2、假如正如你說(shuō)的你的代碼能倒數(shù)到0,如果i=5作為autotime()函數(shù)里面的局部變量,每次循環(huán)的時(shí)候都會(huì)重新給i賦值,因此只倒數(shù)1次(即你問(wèn)的第二個(gè)問(wèn)題)。放在外面作為全局變量就不會(huì)出現(xiàn)這種問(wèn)題。
舉報(bào)
本課程從如何插入JS代碼開(kāi)始,帶您進(jìn)入網(wǎng)頁(yè)動(dòng)態(tài)交互世界
6 回答函數(shù)有全局變量和局部變量之分嗎?
1 回答js局部變量
3 回答JS的全局變量
1 回答i關(guān)于局部變量的問(wèn)題
1 回答這里面 i 和 hobby 都是全局變量嘛
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-03-27
1、你這代碼,我復(fù)制過(guò)來(lái)看,好像是從4開(kāi)始,并且是不會(huì)倒數(shù)的。很顯然,最開(kāi)始autotime()調(diào)用函數(shù),i = 5,i有自減1,代碼就把i的值(4)賦值給了span標(biāo)簽里面的內(nèi)容。因此是從4開(kāi)始的。而不會(huì)倒數(shù)是因?yàn)閟etTimeout()這個(gè)對(duì)象是在指定的延遲時(shí)間之后來(lái)執(zhí)行代碼,根本沒(méi)有達(dá)到循環(huán)的效果。應(yīng)該用setInterval().
2、假如正如你說(shuō)的你的代碼能倒數(shù)到0,如果i=5作為autotime()函數(shù)里面的局部變量,每次循環(huán)的時(shí)候都會(huì)重新給i賦值,因此只倒數(shù)1次(即你問(wèn)的第二個(gè)問(wèn)題)。放在外面作為全局變量就不會(huì)出現(xiàn)這種問(wèn)題。