6 回答
已采納

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

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

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