js學習筆記(二)關於函數的 全域變數 和 局部變數 樣本

來源:互聯網
上載者:User

標籤:

全域變數(樣本)

<script>function square(num)              /*傳遞參數*/{    total = num * num;            /*定義全域變數*/    return total;                 /*返回數值total*/}var total = 50;                   /*定義全域變數total*/var number  = square(20);         /*引用square(參數)賦值給number*/alert(total);alert(number);</script>

如果沒有使用 var,變數就將被視為一個全域變數,如果指令碼裡已經存在一個與之同名的全域變數,這個函數就會改變那個全域變數的值。

square函數中 total沒有做var聲明,所以是一個全域變數。square函數外同樣有一個已經聲明了的total變數。由於使用var(關鍵字)+變數名(標識符)的方式在function外部聲明,即為全域變數。(全域變數聲明方法之一)

由於指令碼中已經存在了一個全域變數。square函數中的total(num*num賦值給total;num等於number引用square(參數)參數是20。所以是400)值將改變外部全域變數的值!

 

局部變數(樣本)

<script type="text/javascript">function square(num){    var total = num * num;  /*乘法運算賦值給局部變數total*/    return total;       /*傳回值給total*/}var total = 50;         /*全域變數total等於50*/var number     = square(20);/*引用square(參數)給number*/alert(total);alert(number);</script>

square函數中的total聲明了局部變數。函數外部雖然也聲明了的total變數。但是它們是兩個完全不同的變數。一個是局部變數;一個是全域變數。這就好像是同一個人有相同的名字,但是本質上他們是完全不同的兩個人!

由於square函數內部引用了外部全域變數total。所以輸出值是50!number輸出是400.因為全域變數number引用了square(參數)並且賦值給number。所以square函數內部的 num*num乘法運算是賦值給number的。

js學習筆記(二)關於函數的 全域變數 和 局部變數 樣本

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.