首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js中关于作用域的有关问题

2012-10-12 
js中关于作用域的问题1、[codeJScript]if(true){varcolorblue }alert(color)[/code]2、[codeJScript]

js中关于作用域的问题
1、
[code=JScript]
if(true)   {
      var   color   =   "blue ";
}
alert(color);
[/code]

2、
[code=JScript]
for(var   i=0;   i <10;   i++)   {
      doSomething(i);
}
alert(i);
[/code]

3、
[code=JScript]
function   add(num1,   num2)   {
var   sum   =   num1   +   num2;
return   sum;
}

var   result   =   add(10,   20);
alert(sum);
[/code]


为什么第一个程序与第二个程序都说局部变量的作用域是全局的,在外面都可以调用;但第三个程序的sum(局部变量)的作用域不是全局?在外面不能调用呢?

[解决办法]
JS中的变量作用域,只有一种级别,就是函数级。最顶层的window级其实也是一个函数。在这个函数之内还可以构造其它函数,就和我们通过函数来创建对象一样。这样的话,每个嵌套的函数都按嵌套级别存在不同的作用域。子函数可以访问父函数内的变量,反之则不行,兄弟函数之前也不能访问各自内部的变量。

热点排行
Bad Request.