6 回答
已采納

qq_安安_17
TA貢獻(xiàn)49條經(jīng)驗(yàn) 獲得超52個(gè)贊
for(var?i=0;i<5;i++){?//在方法內(nèi),用var聲明了一個(gè)局部變量。方法結(jié)束,變量自動(dòng)銷毀。 ????//do?sth } for(i=0;i<5;i++){?????????/*在方法內(nèi),沒有用var聲明i。聲明了一個(gè)全局變量, ????//do?sth???????????????方法內(nèi)外都有效。但這種聲明方法不提倡*/ }???????????????????????????? //最好改為 var?i; for(i=0;i<5;i++){? ????//do?sth????? }
希望可以幫助你
點(diǎn)擊展開后面3條

WingMeng
TA貢獻(xiàn)32條經(jīng)驗(yàn) 獲得超13個(gè)贊
使用 var 聲明的變量會(huì)自動(dòng)被添加到最近的執(zhí)行環(huán)境中。在函數(shù)內(nèi)部,這個(gè)環(huán)境就是函數(shù)的局部環(huán)境,如果是外部,該變量就是全局變量,類似于不用 var 聲明的變量。例如:
for?(var?i?=?0;?i?<?5;?i++)?{??//?i?是全局變量 ????//?do?something } function?func()?{ ????for?(var?j?=?0;?j?<?5;?j++)?{??//?j?是?func?函數(shù)內(nèi)的局部變量 ????????//?do?something ????} ????for?(k?=?0;?k?<?5;?k++)?{??//?k?是全局變量 ????????//?do?something ????} } console.log(i);??//?5 console.log(k);??//?5 console.log(j);??//?報(bào)錯(cuò):j?未定義
在JS嚴(yán)格模式下,未聲明的變量會(huì)報(bào)錯(cuò)。

橋本奈奈未
TA貢獻(xiàn)436條經(jīng)驗(yàn) 獲得超108個(gè)贊
你是想問把var 放for里和外面的區(qū)別嗎?如果是的話,那么我的回答是,只是位置不同而已,var聲明存在變量提升,也就是說在for里var一個(gè)變量等同于在外面聲明(ps:賦值操作扔在原代碼位置),在for里聲明變量只是習(xí)慣上的寫法,本意是想聲明局部變量(僅在for語句內(nèi)可見),雖然并沒有達(dá)到效果。ES6新增了let和const聲明就可以實(shí)現(xiàn)定義局部變量

慕的地6079101
TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超0個(gè)贊
添加回答
舉報(bào)
0/150
提交
取消