//话都在代码里,小白一枚,有什么错误,请各位大神直接提出来,在此谢谢拉
var bx = 43; //全局变量
function s(){
//局部变量
var bx = 12;
console.log("1---s()函数中----->" + bx); //12
bx = 33;
console.log("2----s()函数中---->" + bx); //33
}
s();
//为了方便起见,就把它称作3
console.log("3----s()函数外---->" + bx);//43
结果如下:
1---s()函数中----->12
2----s()函数中---->33
3----s()函数外---->43
//函数外的3的结果是43
//但还是不太确定函数内的bx = 3;到底是不是全局变量
//为了测试修改的代码1如下:
//var bx = 43; //去掉全局变量
function s(){
//局部变量
var bx = 12;
console.log("1---s()函数中----->" + bx); //12
//函数外3,并没有输出结果可看出,bx是局部变量
//采取的就近原则,覆盖上面bx=12的值
bx = 33;
console.log("2----s()函数中---->" + bx); //33
}
s();
console.log("3----s()函数外---->" + bx);//无
结果如下:
1---s()函数中----->12
2----s()函数中---->33
测试修改的代码2如下:
var bx = 43;
function s(){
//局部变量
//var bx = 12;
//根据就近原则,就是上面的全局变量的值:43
console.log("1---s()函数中----->" + bx); //43
//此时的bx是全局变量
//覆盖上面bx=43的值
bx = 33;
console.log("2----s()函数中---->" + bx); //33
}
s();
//称作3
console.log("3----s()函数外---->" + bx);//33
结果如下:
1---s()函数中----->43
2----s()函数中---->33
3----s()函数外---->33
新手上路之JavaScript 全局变量与局部变量同名问题 详解
最新推荐文章于 2023-08-22 11:34:07 发布