JavaScript 作用域

   有過編程語言學習經歷的人都會知道,好多編程語言的作用域都分“文件域”、“類作用域”、“函數原型作用域”等等。不過,什麼神奇的事都會在JavaScript裏發生,JavaScript

的作用域只分爲“全局作用域”和“函數作用域”。

   判斷一個變量的作用域說起來很簡單,在函數中定義的就是函數作用域,在函數外定義的就是全局作用域。(當然,有特殊情況,下面會提到。)

   既然JavaScript中的變量的作用域是以函數來劃分的,那麼也就不取決於在哪個代碼塊裏。舉個例子,有如下代碼:

  

if(1){
    var t=1;
}

alert(t);<pre name="code" class="javascript">

   會發現,t在代碼塊外也可以訪問,而且屬於全局域。

   我在上文提到了一個特殊情況,在函數裏定義的變量也有可能是全局域。例如以下代碼:

  

function tt(){
    aa="showtext";
}
tt();
alert(aa);

  可以發現,aa在函數外也是可以訪問的,這種在函數裏的“隱式定義”的變量也是全局域的。

  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章