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

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

有關變量的聲明問題,求大神給解答下。謝謝!

<script type="text/javascript">

? function ?app2(x,y)

? { var sum,x,y;

? ? sum = x * y;

? ? return sum;

? }

?req1 = app2(5,6);

//?var req1 = app2(5,6);

?req2 = app2(2,3);

//?var req2 = app2(2,3);

?sumq = req1+req2;

//?var sumq = req1+req2;

document.write("req1的值:"+req1+"<br/>");

document.write("req2的值:"+req2+"<br/>");

document.write(req1+"與"+req2+"和:"+sumq);

</script>

問題:req1、req2、sumq這三個變量,聲明和不聲明對運行結果都沒有影響,這兩者有什么區別嗎?在使用的過程中有什么前提嗎?

正在回答

3 回答

?req1 = app2(5,6);

//?var req1 = app2(5,6);

?req2 = app2(2,3);

//?var req2 = app2(2,3);

?sumq = req1+req2;

//?var sumq = req1+req2;

以上這段代碼,不管你用var聲明還是不聲明,這兩種寫法都是全局變量,沒什么區別,因為是在函數外。

? function ?app2(x,y)

? { var sum,x,y;

? ? sum = x * y;

? ? return sum;

? }

這段代碼里面的三個變量均為局部變量。在函數里面用var聲明了的變量就是局部變量。

? function ?app2(x,y)

? {?

? ? return ?x * y;

? }

如果是這樣寫的話,當app2()這個函數被調用時,x,y都是全局變量,因為沒用var聲明。

全局變量就是在代碼里哪都能被調用,局部變量只能在某個范圍內使用(如某個函數里使用)。


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

在函數里沒用var聲明的變量,當函數被調用時就會變成全局變量,在函數里使用var聲明了的變量,就是局部變量。在函數外用var聲明和沒聲明的變量都是全局變量。

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

這三個變量如果不聲明,也是可以直接給它賦值的,但是當給這三個沒聲明的變量賦值的時候,javaScript引擎就會自動把這個變量變成全局變量了,而本身你聲明的變量也是全局變量,所以沒有影響。

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

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468832    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

有關變量的聲明問題,求大神給解答下。謝謝!

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

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

幫助反饋 APP下載

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

公眾號

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