亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

for(var i=0;i<5;i++)和for(i=0;i<5;i++)有什么區別?

for(var i=0;i<5;i++)和for(i=0;i<5;i++)有什么區別?

19990000 2017-08-28 22:10:36
如題如題如題!?。?
查看完整描述

6 回答

?
我是新手_請多指教

TA貢獻140條經驗 獲得超79個贊

前者比后者多一個var

查看完整回答
10 反對 回復 2017-08-29
已采納
?
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?????
}

希望可以幫助你

查看完整回答
8 反對 回復 2017-08-29
  • 橋本奈奈未
    橋本奈奈未
    并不會自動銷毀,var聲明在for語句外依然可見,如果for語句是在全局作用域,var聲明也是等同于聲明全局變量
  • qq_安安_17
    qq_安安_17
    我說的是方法內的局部變量
  • 落葉1111
    落葉1111
    var 這里不一定是局部變量,也可以是全局變量
點擊展開后面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嚴格模式下,未聲明的變量會報錯。

查看完整回答
3 反對 回復 2017-08-29
?
落葉1111

TA貢獻57條經驗 獲得超9個贊

在es5中是沒有任何區別的,因為js沒有塊作用域,

查看完整回答
2 反對 回復 2017-08-29
?
攻城獅c

TA貢獻6條經驗 獲得超7個贊

第二個你不用個類型 確定能運行嗎?

查看完整回答
1 反對 回復 2017-08-29
?
橋本奈奈未

TA貢獻436條經驗 獲得超108個贊

你是想問把var 放for里和外面的區別嗎?如果是的話,那么我的回答是,只是位置不同而已,var聲明存在變量提升,也就是說在for里var一個變量等同于在外面聲明(ps:賦值操作扔在原代碼位置),在for里聲明變量只是習慣上的寫法,本意是想聲明局部變量(僅在for語句內可見),雖然并沒有達到效果。ES6新增了let和const聲明就可以實現定義局部變量

查看完整回答
1 反對 回復 2017-08-28
?
勿莣洎莪

TA貢獻6條經驗 獲得超1個贊

前面是在循環里面定義的變量,后面的應該是在循環之前就初始了變量。

查看完整回答
反對 回復 2017-08-29
?
hundunhou

TA貢獻1條經驗 獲得超0個贊

一個定義了變量 i 一個沒定義 會報錯

查看完整回答
反對 回復 2017-08-28
  • 6 回答
  • 0 關注
  • 6589 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號