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

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么把sum定義在函數內跟定義在函數外的運行結果不一樣,求解答!謝謝

為什么把sum定義在函數內跟定義在函數外的運行結果不一樣,求解答!謝謝

正在回答

2 回答

舉個栗子

比如想要循環一個數組,求出數組中所有元素之合

定義在函數外:

var?arr?=?[1,2,3,4];
var?sum?=?0;//?定義在函數外
for(var?i?=?0;i<arr.length;i++){
??//?因為sum在外部定義的,所以只管往sum上累加值即可
??sum?+=?arr[i]
}

定義在函數內:

var?arr?=?[1,2,3,4];
for(var?i?=?0;i<arr.length;i++){
??//?每次進循環之后,都重新定義了一個sum變量,其值是0,所以上一次累加的元素值會被沖(覆蓋)掉
??var?sum?=?0;
??//?累加元素值
??sum?+=?arr[i]
}


0 回復 有任何疑惑可以回復我~
#1

qq_我愛喝大果粒_0 提問者

謝謝你的解答,明白啦
2015-11-27 回復 有任何疑惑可以回復我~
#2

慕男嬸 回復 qq_我愛喝大果粒_0 提問者

應該是循環內 和 循環外,而不是 函數內 和 函數外,打錯字兒了。
2015-11-27 回復 有任何疑惑可以回復我~

應該是局部變量和全局變量的原因吧,大神勿噴!

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么把sum定義在函數內跟定義在函數外的運行結果不一樣,求解答!謝謝

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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