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

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

關于局部變量

關于局部變量

全知術士 2017-11-01 10:32:50
js中局部變量只對局部的函數起作用,執行完該函數自動刪除局部變量,但這段代碼中第二個函數里面變量sum的值和第一個sum值是一樣的,這是怎么回事兒呢?不應該是0么? <html> <head> <title>全部變量和局部變量再探</title> </head> <body> <button onclick="myFunction()">局部變量</button> <br><br> <button onclick="myFunctions()">局部變量</button> <script> var sum=0; function myFunction(){ var str1=123; var str2=345; sum=str1+str2; alert(sum);//值為468 } function myFunctions(){ alert(sum);//值為468 } alert(sum);//值為0 </script> </body> </html>
查看完整描述

3 回答

?
習慣受傷

TA貢獻885條經驗 獲得超1144個贊

代碼中的sum在方法外聲明,所以對兩個方法來說,sum都是可見的,實際上訪問的是window.sum,并非某個方法內的sum。

樓主可以試試把,var sum = 0;放在第一個方法中測試。

查看完整回答
1 反對 回復 2017-11-01
?
joffyzou

TA貢獻45條經驗 獲得超17個贊

這個要看你先執行哪一個函數了,如果先執行myFunction,myFunctions返回值就是和?myFunction的值一樣,如果先執行myFunctions的話,它的值就是0,你函數里面應用的都是全局變量,修改的都是全局變量的值,所以要看哪一個函數先執行,后面執行的函數是基于前面執行完后修改了的全局變量的值。

查看完整回答
反對 回復 2017-11-01
?
Caballarii

TA貢獻1123條經驗 獲得超629個贊

sum變量定義在兩個函數外面,作用域是在外部的,所以不是局部變量,兩個函數里使用的sum實際還是外部的sum

function?myFunction(){
????var?sum=0;
}

這樣才是函數內部的局部變量,只在這個函數里有效

查看完整回答
反對 回復 2017-11-01
  • 3 回答
  • 1 關注
  • 2110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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