1 ,函式內部宣告變數是函式自己的區域性變數,函式外部宣告變數是全域性變數,
如果函式內沒有宣告區域性變數,將返回全域性變數,如果函式內部宣告有區域性變數,
將返回區域性變數;
2,如下圖,函式內宣告有color= red,返回red;
2,下圖沒有宣告區域性變數,返回blue;
3,傳遞引數:ecma中所有引數的傳遞都是按值傳遞;引數只能按值傳遞;
引數實際上是函式的區域性變數;呼叫這個函式時,變數
count
作為引數傳入函式中,
count
的值為20
,數值20
便複製給
num使用,就是按值傳遞;如下:
在函式內部修改引數的值,原始的引用仍保持不變;
4,對作用域的理解:
首先需要理解全域性環境,和區域性環境,當沒有建立函式的時候,可以認為整體是乙個全域性環境,
建立函式後,就相當於建立了乙個區域性環境,函式內部可以巢狀函式,說明函式內部還有乙個
區域性環境,子環境可以引用父環境宣告的變數,而父環境不能引用子環境的變數;
關於全域性變數和區域性變數
1.區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...
全域性變數和區域性變數
全域性變數 可以被不同的函式 類或檔案呼叫的變數,在函式外定義。區域性變數 只能在函式內使用,定義在函式內。區域性變數的使用 class myclass def myfun num 12 print myfun num num 正確 def myfun2 num num 1 print mufun ...
全域性變數和區域性變數
區域性變數 在方法中開闢的變數,只在方法中有效 區域性變數在定義時不會初始化,要顯式的給它乙個值 如未給它乙個初始值,雖然編譯的時候會通過,但是執行的時候會產生為初始化錯誤!方法呼叫 執行完,區域性變數便會自動釋放。在方法內的語句塊中建立的變數在編譯時假如未初始,如若使用,也會報未初始化錯誤!呼叫的...