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在函数外也是可以访问的,这种在函数里的“隐式定义”的变量也是全局域的。

  


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