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

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

哪位大師幫我解答一下,為什么全局變量放函數外不行?

<script>

var txt1=parseInt(document.getElementById("txt1").value);

var txt2=parseInt(document.getElementById("txt2").value);

var se=document.getElementById("vu").value;

var d;


function result(){

switch(se){

case "+":

d=txt1 + txt2;

break;


case "-":

d=txt1 - txt2;

break;


case "*":

d=txt1 * txt2;

break;


case "/":

d=txt1 / txt2;

break;

}

document.getElementById("sum").value=d;

}

</script>


<input type="text" id="txt1">

<select id="vu">

? <option value="+">+</option>

? <option value="-">-</option>

? <option value="*">*</option>

? <option value="/">/</option>

</select>

<input type="text" id="txt2">

<input type="button" value="=" onclick="result()">

<input type="text" id="sum">



正在回答

2 回答

覺得是?onclick綁定的是result()函數,而你的變量并沒有在里邊,所以沒有執行get和賦值

自己的見解~不知道對不對

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

bestMan 提問者

是的呀,我測試別的例子,把全局變量放在函數體外都可以執行的呀,這個不例子不太明白,為什么把全局變量放在函數體執行不了
2019-06-14 回復 有任何疑惑可以回復我~
#2

bestMan 提問者

難道是因為switch語句的原因,就必須放在函數體內?
2019-06-14 回復 有任何疑惑可以回復我~
#3

慕尼黑0535884 回復 bestMan 提問者

開始的時候是執行了,但是這個時候你的text中的value值為空undefined, 最后執行onclick綁定的result()函數的時候,因為沒有在函數內部,不執行,所以并沒有重新獲取值,所以你填的值還是為空呀
2019-06-14 回復 有任何疑惑可以回復我~
#4

bestMan 提問者 回復 慕尼黑0535884

666,應該就是這樣的,謝啦~兄弟
2019-06-14 回復 有任何疑惑可以回復我~
#5

bestMan 提問者 回復 慕尼黑0535884

開始執行了一遍text中的value值后,再執行onclick綁定的函數時外面的全局變量就不執行了,原來是這樣的原理
2019-06-14 回復 有任何疑惑可以回復我~
查看2條回復

var聲明的是局部變量的關鍵字,js的局部變量作用域是以函數為單位,你定義到函數外面,在函數內部調用是不行的

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

舉報

0/150
提交
取消

哪位大師幫我解答一下,為什么全局變量放函數外不行?

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

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

幫助反饋 APP下載

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

公眾號

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