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