JS的混乱+我的迷糊,整个世界都天旋地转了。
1.先来一个貌似是正常的:
//全局变量
var str = 'abc';
function varTest()
{
//局部变量
var str = 'xxx';
alert(str);
}
alert(str);//abc
varTest();//xxx
alert(str);//abc
2.再来一个,不可思议的: [这个和上面的唯一区别之处就是局部变量没有加var]
//全局变量
var str = 'abc';
function varTest()
{
//局部变量
str = 'xxx';
alert(str);
}
alert(str);//abc
varTest();//xxx
alert(str);//xxx
全局变量可以不声明var,
函数内变量必须声明var,
在定义全局变量时加或不加var关键字没什么影响;
但在定义局部变量时如果不加var关键字
javascript解释程序会将其解释为全局变量