打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JavaScript中的全局变量与局部变量

【转】JavaScript中的全局变量与局部变量

在js中如果用var来定义一个变量,如果该变量被定义在function或者其他循环体内,则变量为局部变量,并且该变量不会受到同名全局变量的影响,也不会影响同名的全局变量。如果不用var来定义变量而直接拿一个变量来使用则该变量会被自己定义为全局变量,无论该变量被定义在任何位置,如果在function或者循环体内用这种方式来定义变量,则该变量为全局变量若function或循环体外已经定义了同名的全局变量,则会直接引用function或循环体外定义的全局变量。 注意:js中,一个函数里面若有循环体,则在循环体中定义的变量作于域会是整个函数,这一点根其他高级语言不一样。下面例子中的testVar(),在for循环中定义了一个局部变量i,该i的作用域就为整个函数体。 例子:

function testNoVar()
{
   
for(i=0;i<10;i++)
   
{
       
if(i==5) break;
    }
    alert(
"testNoVar "+i);
}
function testVar()
{
   
for(var i=0;i<10;i++)
   
{
       
if(i==6) break;
    }
    alert(
"testVar "+i);
}
testNoVar();
try
{
    alert(
"behind testNoVar i value :"+i);
}
catch(e)
{
    alert(
"behind testNoVar i value :"+e);
}
testVar();
try
{
    alert(
"behind testVar i value :"+i);
}
catch(e)
{
    alert(
"behind testVar i value :"+e);
}

testNoVar中循环体内的i没有用var来定义,该i为全局变量。而testVar中的循环体用var定义了i,该i为局部变量,于是它不受到前面定义的全局变量的影响,所以该例子打印结果的先后循序为: "testNoVar 5" -> "behind testNoVar i value :5" -> "testVar 6" -> "behind testVar i value :5"

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
全局变量与局部变量
7-3
JavaScript变量作用域
[ JS 进阶 ] 如何改进代码性能 (3)
02. JS 变量(variable)
JS全局变量VAR和THIS--在函数内部,加var是局部变量,不加是全局变量
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服